达芬奇软件架构

上传人:小** 文档编号:56637196 上传时间:2018-10-14 格式:DOCX 页数:12 大小:20.61KB
返回 下载 相关 举报
达芬奇软件架构_第1页
第1页 / 共12页
达芬奇软件架构_第2页
第2页 / 共12页
达芬奇软件架构_第3页
第3页 / 共12页
达芬奇软件架构_第4页
第4页 / 共12页
达芬奇软件架构_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《达芬奇软件架构》由会员分享,可在线阅读,更多相关《达芬奇软件架构(12页珍藏版)》请在金锄头文库上搜索。

1、Davinci 架构的由三个部分组成,即:codecs,servers,apps(算法,算法服务器,应用。 )codecs 是不能单独成为程序的,它是以库的形式提供给,servers,apps。servers 是 dsp 可以运行的程序(包括操作系统)。Apps 是 arm 端 linux 操作系统下的一个应用程序。下面分别讲解这三个部分的构成。1.codecs进入jerryjerry- laptop:/dvsdk_3_00_01_42/codec_engine_2_24/examples/ti/sdo/ce/exampl es/codecs$ lsauddec1_copy imgdec1_c

2、opy package.xdc universal_copy videnc1_copyauddec1_ires imgdec_copy scale vidanalytics_copy videnc_copyauddec_copy imgenc1_copy sphdec1_copy viddec1_copy vidtranscode_copyaudenc1_copy imgenc_copy sphdec_copy viddec2_copyaudenc_copy makefile sphenc1_copy viddec2split_copyg711 package sphenc_copy vidd

3、ec_copy我们可以看到已经有很多算法了。我们看其中一个:jerryjerry- laptop:/dvsdk_3_00_01_42/codec_engine_2_24/examples/ti/sdo/ce/exampl es/codecs/viddec_copy$ lslib package.bld viddec_copy.c VIDDEC_COPY.xdcmakefile package.xdc viddec_copy_ti.h VIDDEC_COPY.xspackage package.xs viddec_copy_ti_priv.h可以看出,一个算法有1.makefile 文件,我们编

4、译算法执行 make 的时候就是使用的 makefile.2.viddec_copy_ti_priv.h, viddec_copy_ti.h, viddec_copy_ti.h 是算法的源代码。3.Lib 目录是编译后生成的库放在这个文件夹里。jerryjerry- laptop:/dvsdk_3_00_01_42/codec_engine_2_24/examples/ti/sdo/ce/exampl es/codecs/viddec_copy/lib$ lsviddec_copy.a470uC viddec_copy.a64P viddec_copy.a674 viddec_copy.a86

5、U viddec_copy.av4TCE viddec_copy.av5T可以看到有各个平台的库文件。4.package 文件夹是存放编译过程的中间文件。5.package.bld,package.xdc ,package.xs,VIDDEC_COPY.xs,VIDDEC_COPY.xdc是配置文件,xdc 能够识别的配置文件。 package.bldbld 就是 build 的意思,所以这个文件是和编译配置相关的,比如是 debug,还是 release 版本,源文件包包含哪些,以及要编译的目标平台版本, x86,linux,C64P,还是 MVARM9。这个目标平台的配置来自 config

6、.bld 文件,这个文件位于 CE_INSTALL_DIR/examples 下,你可以修改来达到定制,这里面默认是从 xdcpath.mak 文件里配置读取的。var SRCS = “viddec_copy“;for (var i = 0; i Build.targets.length; i+) var targ = Build.targetsi;print(“building for target “ + targ.name + “ .“);/* Add a library to this package and add the files described in* SRCS to th

7、e library.*/Pkg.addLibrary(“lib/viddec_copy“, targ).addObjects(SRCS);这个就是生成各个平台的库。 package.xdc.就是静态属性配置文件,比如算法的名称,依赖项包和配置等文件。requires ti.sdo.ce.video;依赖这个包package ti.sdo.ce.examples.codecs.viddec_copy module VIDDEC_COPY;上面这个语句说明这个算法的包所在路径是 “ti.sdo.ce.examples.codecs.viddec_copy“ 它包含唯一的一个模块 “VIDDEC_C

8、OPY“,这个其实想当于告诉 xdc 会包含 module 的 xdc,xs,这里是 VIDDEC_COPY.xdc,VIDDEC_COPY.xs 配置文件. package.xs.这个是动态属性配置文件,这些属性会根据平台,配置不一样而不一样。比如:function getLibs(prog)var suffix = prog.build.target.findSuffix(this);if (suffix = null) return (“);var name = “lib/viddec_copy.a“ + suffix;print(“ will link with “ + this.$n

9、ame + “:“ + name);return (name);这个语句返回这个算法所引出的包,比如 servers,apps 就需要。一般算法编译的时候会编译多种平台的包,故需要有一个能够获取不同包位置的配置。 VIDDEC_COPY.xdc.具体算法的静态配置文件,这个文件名字必须匹配 package.xdc 中 module 的名字。包括这个算法的接口类型,实现。metaonly module VIDDEC_COPY inherits ti.sdo.ce.video.IVIDDECoverride readonly config String ialgFxns = “VIDDECCOPY

10、_TI_VIDDECCOPY“;inherits ti.sdo.ce.video.IVIDDEC,这个表明这个算法是一个 VSIA 中的视频解码算法。ialgFxns = “VIDDECCOPY_TI_VIDDECCOPY“;表明这个算法的在代码的变量名称是 “VIDDECCOPY_TI_VIDDECCOPY“,用来向外面 导出算法实现函数集变量。 VIDDEC_COPY.xs.这个定义了这个算法的一些动态属性,必须实现.xdc 中接口的方法。比如堆栈的大小。function getStackSize(prog)if (verbose) print(“getting stack size fo

11、r “ + this.$name+ “ built for the target “ + prog.build.target.$name+ “, running on platform “ + prog.platformName);return (1024);/* = getDaramScratchSize =*/function getDaramScratchSize(prog)if (verbose) print(“getting DARAM scratch size for “ + this.$name+ “ built for the target “ + prog.build.tar

12、get.$name+ “, running on platform “ + prog.platformName);return (0);再看 servers:jerryjerry- laptop:/dvsdk_3_00_01_42/codec_engine_2_24/examples/ti/sdo/ce/exampl es/servers/all_codecs$ lsall.cfg all_evm3530.tci all_evmDM6446.tci all_evmOMAPL137.tci all.tcf link.cmd makefile package.bld package.xdcall_

13、evm2530.tci all_evmDM357.tci all_evmDM6467.tci all_sdp3430.tci bin main.c packagemakefile package.bld,package.xdc 和上面没有本质区别。var serverName = “my_server“;/这个要匹配.xdc 中定义的 package namePkg.attrs.profile = “release“;Link.cmd 是链接配置文件 。Bin 是编译后的程序所在的目录.Package 也是编译过程中的中间中间,比如根据配置生成的 all_x64p.c,all_x64p.jsm

14、ain.c 是算法执行前要执行的程序.各个平台的 DSP/BIOS 内存配置文件 x.tci.在这里大家可以配置 DDR,SHRMM,resetvec 等内存区域的地址和大小:比如all_evm3530.tci 中var mem_ext = comment: “DDRALGHEAP: off-chip memory for dynamic algmem allocation“,name: “DDRALGHEAP“,base: 0x86000000,len: 0x01800000, / 24 MBspace: “code/data“,comment: “DDR2: off-chip memory

15、 for application code and data“,name: “DDR2“,base: 0x87800000,len: 0x00600000, / 6 MBspace: “code/data“,comment: “DSPLINK: off-chip memory reserved for DSPLINK code and data“,name: “DSPLINKMEM“,base: 0x87E00000,len: 0x00100000, / 1 MBspace: “code/data“,comment: “RESET_VECTOR: off-chip memory for the

16、 reset vector table“,name: “RESET_VECTOR“,base: 0x87F00000,len: 0x00001000, / 4 KBspace: “code/data“,comment: “L4CORE: L4-Core Interconnect Address Space“,name: “L4CORE“,base: 0x48000000,len: 0x01000000, / 16 MBspace: “data“,comment: “L4PER: L4-Peripheral Interconnect Address Space“,name: “L4PER“,base: 0x49000000,len: 0x00100000, / 1 MBspace: “data“,comment: “IVA Memory Management Unit“,name: “IVAMMU“,base: 0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号