我用GenCodecPkg生成了codec package,用GenServer生成了server package。我发现server中已经开启了trace功能,也就是可以使用GT_*trace,而Codec中就没有。我想在Codec中使用GT_*trace调试算法,该怎么做?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
你好, 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。
诸位,我不知道大家生成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打印信息了。
你好,Amob
在config.bld中按照手册添加识别库的时候我也遇到过找不到lib库中函数的问题,而在link.cmd文件中添加lib库后没有遇到类似的问题。究其原因还是需要跟踪二种方式的内部流程,我暂时还没有看那方面。
在server package中link.cmd文件中直接添加引用库的路径和库文件名 “$(ABSOLUTE_PATH)/$(LIB_NAME)”
然后直接在codec package中C文件中调用就可以了。
关于C6,添加算法的确需要用到这个模块,不过我这边的做法没有一个直观的印象,你用的是什么方法?
TH Wang 你好
就仅仅在link.cmd里面添加算法lib的路径和文件名即可?我就是在server的packages里的link.cmd文件里面添加了"-l alg.lib",alg.lib放在和link.cmd相同的路径下面,每次编译都能通过,但是就是在codec里应用alg.lib里的函数时,总是提示找不到lib,codec里我也添加了alg.lib的头文件,这样为什么不行呢?
关于C6,就像里面的加速算法一样,把自己的算法包装成一样的接口,还有packages里的各种配置文件需要修改,如你需要,我可以给你写个手册。
你好,comeback
你的做法应该是也可行的,但是通过server的编译信息来看
building for target C64P ...
generating interfaces for package servers.test (because package/package.xdc.inc is older than package.xdc) ...
configuring bin/test.x64P from package/cfg/bin/test_x64P.cfg ...
platform = ti.platforms.evm3530
undefined.createMemMapFile(): progName = bin/test_x64P
NOTE: You can find the complete server data sheet in ./package/info/bin/test.x64P.DataSheet.html
------------------------------------------------------------------------------------------------
algRecs[PLATE_CODECS_IPLATE] = ti.sdo.ce.universal.IUNIVERSAL
will link with codecs.plate:lib/release/plate.a64P
will link with ti.sdo.ce.universal:lib/release/universal.a64P
will link with ti.sdo.ce.bioslog:lib/release/bioslog.a64P
will link with ti.sdo.ce:lib/release/ce.a64P
will link with ti.sdo.ce.alg:lib/release/Algorithm_BIOS.a64P
will link with ti.sdo.ce.ipc.bios:lib/release/ipc_bios.a64P
will link with ti.sdo.ce.osal.bios:lib/osal_bios.a64P
will link with ti.sdo.ce.osal.bios:lib/osal_bios_pwrm.a64P
will link with ti.bios.utils:lib/utils.a64P
will link with ti.sdo.fc.acpy3:lib/trace/acpy3.a64P
will link with ti.sdo.fc.memutils:lib/trace/memutils.a64P
will link with ti.sdo.fc.dman3:lib/trace/dman3Cfg.a64P
will link with ti.sdo.ce.utils.xdm:lib/release/XdmUtils.a64P
will link with ti.sdo.ce.node:lib/release/node.a64P
will link with ti.sdo.fc.rman:lib/trace/rman.a64P
will link with ti.sdo.fc.dskt2:lib/trace/dskt2.a64P
will link with ti.sdo.fc.ires.nullresource:lib/trace/nullres.a64P
will link with ti.sdo.utils.trace:lib/release/gt.a64P
cl64P main.c ...
cl64P package/cfg/bin/test_x64Pcfg_c.c ...
cl64P package/cfg/bin/test_x64P.c ...
asm64P package/cfg/bin/test_x64Pcfg.s62 ...
lnk64P bin/test.x64P ...
all files complete.
generating external package references package/package.ext.xml ...
generating package references graph package/package.rel.dot ...
making release file servers_test.zip (because of package/rel/servers_test.xdc.inc) ...
在生成最终目标文件时,才会统一链接资源。
@Amob
现在想想,我当时的做法有点复杂。我是先用GenCodecPkg生成了算法框架,但由于生成的工程不是CCS工程,我就把3个主要文件(两个.h头文件和一个.c文件)拿了出来,加入到了另外新建的一个CCS工程。在这个CCS工程里,你想怎么样都行了,最后生成了lib库。然后又用GenCodecPkg由符合算法标准的lib库生成了Codec Package,最后生成Server Package。
所以准确来说,我并不是在Codec中调用了lib库,而是先把整个算法打包成了lib库,然后直接生成Codec Package。这么麻烦的目的就是为了使用GT_*trace。后来我又想到是不是可以不用这么麻烦,就直接从Codec中调用lib。关于这一点我还没有实验过,具体情况还不清楚。