分享

Davinci软件架构——概述

 春华_秋实 2012-05-21

Davinci软件架构——概述

(2010-10-14 10:43:29)

http://sjj0412.

 

   开始学习DavinciDM6446,首先就要知道Davinci软件是如何架构的。

    三个--codecs,servers,apps
         算法,算法服务器,应用
  codecs就是处理各种数据信号的算法程序,是不能单独成为程序的,它是以库的形式提供给,servers,apps。
  servers是dsp可以运行的程序(包括操作系统,就是算法的dsp端的执行体包括dsp/bios)
  Apps是arm端linux操作系统下的一个应用程序,也就是使用算法的应用。

    还有一些其他的模块,如底层还有dsplink(dsp,arm多核通信模块),VISA(算法调用接口模块)CMEM模块(连续块内存分配模块),LPM(电源管理模块)。

 

    架构流程:

1.算法工程师负责编写符合XDAIS的算法,并将算法封装成库如*.a64P相当于lib。

2.服务器集成工程师整合不同的组件(如DSP/BIOS,框架结构,Link驱动,Codec引擎等)生成一个称为Codec Server的DSP端可执行代码*.64P相当于.out,支持远端的Codec引擎。

3.引擎集成工程师定义各种引擎配置。

4.应用程序创建者使用Codec引擎API编写应用程序。

 

    运行机制:

    当程序编译完成后,应该要有两个程序,一个是在arm端运行的程序比如*.x470MV,dsp端运行程序*.x64p.

    然后还要有各种驱动dsplinkk.ko(多核通信驱动),CMEM.ko(连续内存分配驱动,因为dsp要和arm共享一段内存来通信,而arm端一般跑linux,是虚拟内存,必须要一个机制分配连续的一致性内存),LPM.ko(电源管理模块)。

    当我们在linux执行./*.x470MV时,linux加载这个程序并运行,这个应用程序会调用engine_create创建一个算法引擎,这个函数的实际效果是将*.x64p下载到内存指定地址,然后给dsp发相关命令,从指定地址启动,从而dsp程序运行起来,当arm应用程序要和arm端通信时就直接操作dsplink驱动文件,即可达到通信的目的,不过一般程序员只需使用标准的VISA Api来操作,这些api会帮你和dsp端通信。

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多