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.
你 codec里的打印是在dsp里运行的,这个trace是打印不出来的,所以我说要在codec里调试就要返回到CCS里跟踪了。
另外,你的算法lib库你用什么方式加进去的?是加到c6accel模块里的么?
哦,关于codec的trace你试试看,如能真打印出信息来那最好了,呵呵,我也试试。
然后关于如何使用lib库,我也是在config.bld和link.cmd里试过,编译也可以编译进去,但是调用的时候总是找不到的,你若要是在codec里成功调用了lib里的函数,方便的话写个过程给我看一下,我用6467T,调用时总是找不到这个lib库,然后只能采用c6的模块来解决了,先谢谢你~
诸位,我不知道大家生成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) ...
在生成最终目标文件时,才会统一链接资源。
comeback你好
你说的这个方法我也试过,在codec里加一个lib,也没成功过,是不是还要在这一级的makefile里添加引用库的命令?
关于这个引用lib,我总是没成功,所以最后用c6来解决了。
虽然添加自己的算法解决了,但是这个lib用不了总是不能释怀。
在codec里如何添加,难道还有更多的配置,你是怎么弄的,能举例具体一点么,谢谢先~
@Amob
现在想想,我当时的做法有点复杂。我是先用GenCodecPkg生成了算法框架,但由于生成的工程不是CCS工程,我就把3个主要文件(两个.h头文件和一个.c文件)拿了出来,加入到了另外新建的一个CCS工程。在这个CCS工程里,你想怎么样都行了,最后生成了lib库。然后又用GenCodecPkg由符合算法标准的lib库生成了Codec Package,最后生成Server Package。
所以准确来说,我并不是在Codec中调用了lib库,而是先把整个算法打包成了lib库,然后直接生成Codec Package。这么麻烦的目的就是为了使用GT_*trace。后来我又想到是不是可以不用这么麻烦,就直接从Codec中调用lib。关于这一点我还没有实验过,具体情况还不清楚。
你好,TH Wang
我在servers/all_codecs/link.cmd下按你说的添加lib库,怎么在codecs/viddec_copy中调用lib里的函数就会出现
undefined first referenced
symbol in file呢?