使用JTAG调试Codec Engine算法 (CE,debug, jtag, Codec Engine,算法)
在网上找到一种方法
1、在相应的codecs的package.bld里面加上Pkg.attrs.profile = "debug";
2、在user.bld里面加上C64P.ccOpts.prefix += "–optimize_with_debug –symdebug:dwarf";
3、将生成的*.x64P拷贝至某文件夹(如e:\temp),将相应codecs的源码拷贝至某文件夹(如e:\temp\codec_name)。
4、在ARM端应用程序的Engine_open()后加上等待代码(如printf("Hit Enter to continue."); getchar();),或使用gdb加载程序,并在Engine_open的下一句加上断点。
5、打开CCS,使用仿真器连接DSP(不使用gel文件),并Target->Load Symbol…,载入*.x64P。
6、在CCS里面的Disassembly窗口里面查找要调试函数的名字(如alg_process),并在第一句上下断点。
7、继续运行ARM端程序。
8、在CCS里面按F8运行,在断点处会载入C源文件(如果未能正确加载,可点击界面上的Locate Source File定位源码文件夹)。
9、此时可在C源文件里面下断点及按F5 F6调试codecs了
使用仿真器连接DSP(不使用gel文件)—–怎样实现??用Gel初始化DSP肯定不行?
Kenny:
自己顶顶,希望有人帮忙解答下
kooking:
可以参考一下这个:
http://processors.wiki.ti.com/index.php/Debugging_the_DSP_side_of_a_CE_application_using_CCS
yu he:
回复 kooking:
你好!
我也在用DM3730,才刚接触,是个新手,想请教你一些问题。
我用V4L2编程实现了摄像头采集图片,然 后用opencv处理图片并显示在屏幕上,但是现在速度很慢,我想把图像处理的部分在DSP上运行,看了一些资料,有说用CE的,还有说用DSPLINK 的,我有点糊涂了。首先,我不用编解码,我就是一帧一帧的采集图片,然后做处理再显示在屏幕上;其次,我只是想把图像处理的部分在DSP上运行,就是采集 的数据送到dsp去,然后在dsp上处理完了把数据传回arm就可以了。
我有以下几个疑问:
1.如果只是像我所说的那样只把数据送到dsp处理,是不是只用到dsplink就可以了?
2.如果要用到dsp的话,时候会要求有两个程序部分,一个是arm端的用arm-linux-g++编译的采集和显示的程序,一个是dsp端用ccs编译的处理的程序,还是可以直接在一个文件中编译就可以了?
谢谢!
yalun xiao:
回复 yu he:
你好,根据你提的问题我就如下内容回答你: 你想实现的这个程序构架和codec engine所提供的框架是类似的,你可以查看TMS320DM3730_Software_Developers_Guide.pdf文档,据我所查到的是可以只单独使用dsplink这样的编程框架的,但是当你想要实现一些编解码codec时还是需要使用CE的,但是CE框架里面还是要使用dsplink和cmem做通信任务的。我觉得TI对提供的框架进行了层层的封装,你还是走CE这条“大道”吧,不然自己想当然的话出错了也不知道错在哪里。
还有就是编译的问题。程序是有dsp(.out)和arm(无后缀名)两个可执行文件的,最后把两个可执行文件都放到linux文件系统中,顺序是由执行ARM程序调用PROC_start()启动DSP加载.OUT可执行文件。具体要看dsplink的文档。TI官网下载。
最后总结下,我的建议是利用TI现有提供的框架和机制,多看TI的文档,你所提出的问题官方文档已经给出了很清楚的解释。我现在也在学dm3730,和你要实现的目的相似,我的想法是不管用不用编解码,TI提供的框架里面还是使用CE的好,另外opencv的移植也是一个问题啊,我觉得实现的可能性不大,如何把V4L2、opancv、dsplink结合起来使用现在还没有可用的资料。我们可以交流下,我的QQ号是1095058535.