Davinci软件架构——概述

来源:互联网 发布:剑网三冷酷女神脸数据 编辑:程序博客网 时间:2024/05/29 18:09
 开始学习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端通信。

原创粉丝点击