经过前几篇文章的介绍,您的系统已经构建成功了,接下来就要开发自己的应用程序了。开发应用程序一个就是根据TI的结构来建立工程。一个很重要的就是DSP和ARM的双核通信。下面我一一介绍。
我们看一下DVSDK下面有哪些内容,查看一下:
root@ubuntu:/home/dm6467t/dvsdk_3_10_00_19#ls
bin dvtb_4_20_10
bios_5_41_00_06 edma3_lld_01_11_00_03
biosutils_1_02_02 examples
C6000CGT7.4.2 examples-r37
cg_xml framework_components_2_25_02_06
codec_engine_2_25_05_16 kernel_binaries
cs2dm6467_1_00_00_10 linux_dvsdk_3_10_manifest.pdf
dm355_codecs_03_10_00_02 linuxlibs-2009.11-armv5te
dm365_codecs_03_10_00_07 linuxutils_2_25_04_10
dm365mm_01_00_03 Makefile
dmai_2_10_00_12 mapdmaq
docs mapdmaq-hd
dsplink_linux_1_64 Rules.make
DVSDK_3_10_00_19_release_notes.html uninstall
DVSDK_3_10_00_19_release_notes.pdf xdais_6_25_02_11
dvsdk_demos_3_10_00_16 xdctools_3_16_01_27
root@ubuntu:/home/dm6467t/dvsdk_3_10_00_19#
先做一个简单的介绍
Bin:没有什么内容,不用关注
bios_5_41_00_06:BIOS的内容,不用关注
biosutils_1_02_02:BIOS的内容,不用关注。BIOS是TI的实时操作系统,想关注的朋友建议看CCS。
C6000CGT7.4.2:DSP编译器,在linux下编译,在DSP上运行,也不用关注。
cg_xml:一些工具,你用不上的。
codec_engine_2_25_05_16:双核通信的机制,你如果做DSP与ARM通信,你需要详细研读和理解。
cs2dm6467_1_00_00_10:双核通信的机制,写出了一些实用算法的集成例子,建议你详细研读。
dm355_codecs_03_10_00_02:看名字就知道,不用管了(DM355的,我们用的是DM6467T)。
dm365_codecs_03_10_00_07:看名字就知道,不用管了。
dm365mm_01_00_03:看名字就知道,不用管了。
dmai_2_10_00_12:你做应用开发,这个需要你做详细的研读。这个模块写了很多有用的例子,包括获取图像,音视频压缩,及其它的一些实用的例子及模块。
Docs:没有什么内容
dsplink_linux_1_64:这个是DSPLINK的内空,会编译就行了,不用关注。
DVSDK_3_10_00_19_release_notes.html:文档,可以看一下
DVSDK_3_10_00_19_release_notes.pdf:文档,可以看一下
dvsdk_demos_3_10_00_16:TI提供的编码,解码,视频输入输出的例子,很值得一看,建议详读、理解。
dvtb_4_20_10:不用关注
edma3_lld_01_11_00_03:DMA的东西,可以看看。
examples:CGI例子,没有什么用。
examples-r37:一些例子,可以不用关注
framework_components_2_25_02_06:主要是DSP和DMA相关的东西,做算法优化的看可以看看。
kernel_binaries:编译的两个KO文件在这里,cmemk.ko,dsplinkk.ko,需要用到。
linux_dvsdk_3_10_manifest.pdf:可以看一下
linuxlibs-2009.11-armv5te:不用关注
linuxutils_2_25_04_10:不用关注
Makefile:前面《DM6467T开发领航――环境文件配置》中有详细介绍
mapdmaq:不用关注
mapdmaq-hd:不用关注
Rules.make:前面《DM6467T开发领航――环境文件配置》中有详细介绍
uninstall:不用关注
xdais_6_25_02_11:不用关注
xdctools_3_16_01_27:不用关注
经过上面的介绍,你做DVSDK有一个大致的了解了。
重点看encode这个代码,包括音视频采集和编码。TI提供的这个DEMOS有个BUG,安装好环境编译不过去。你需要做以下修改:
在\home\dm6467t\dvsdk_3_10_00_19\dvsdk_demos_3_10_00_16\dm6467\Makefile文件中:
第一行增加:
exportCROSS_COMPILE=bin/arm-none-linux-gnueabi-
否则会找不到编译器报错,没有办法,TI提供的软件就是有这样那样的问题的,不知道他们发行的时候测试过没有。
TI提供的例子是在720P的模式的情况下运行的,我们的开发板支持的是D1输入,我们encode做了修改。
进入到root@ubuntu:/home/dm6467t/dvsdk_3_10_00_19/dmai_2_10_00_12/packages/ti/sdo/dmai#
这个目录。
Apps中是应用程序的例子,当要使用TI的资源不知道怎么用时,可以查看里面的例子,非常有用。
在DEMOS中调用的函数很多在linux下,你也要仔细查看,如果你能理解,最好你的应用程序抛开dami中函数,让你的应用程序直接访问内核,少了这个dmai,你会发现你和应用程序稳定的多。以前就发现TI提供的这个dmai中的管道就不够稳定,用几天就莫名的出问题。我自己做产品时基本不怎么使用dmai的这一套东西。当然先期使用的话,可以明显加快你的研发速度。
这个里面主要包括三个方面的内容,codec、server、app
每一个算法可以做成一个CODEC,
把所有的算法集成在一个server中
APP是介绍算法的调用。
在DVSDK目录下执行:
root@ubuntu:/home/dm6467t/dvsdk_3_10_00_19#make codecs
就可以完成对这个目录的编译。
你可以把\home\dm6467t\dvsdk_3_10_00_19\cs2dm6467_1_00_00_10\packages\ti\sdo\codecs
中的算法Copy到\home\dm6467t\dvsdk_3_10_00_19\codec_engine_2_25_05_16\examples\ti\sdo\ce\examples\codecs中,当然你需要增加相应的makefile文件,否则会编译不过去的。增加了的算法可以在server中集成。
这个里面主要包括三个方面的内容,codec、server、app
每一个算法可以做成一个CODEC,
把所有的算法集成在一个server中
这个模块中基本上包括了所有应用需要的TI提供的算法,你自己的算法可以在codec中类似的写一个模块,在server中集成。很方便。