没有合适的资源?快使用搜索试试~ 我知道了~
首页DaVinci技术之路——DSPLINK
资源详情
资源评论
资源推荐

DaVinci 技术之路——DSPLINK
研发中心 DaVinci 技术工程师
一、引言
DSPLINK 即 DSP/BIOS
TM
LINK 是基于 DaVinci 架构处理器的 ARM 与 DSP
端进行通信,DSPLINK 提供了一套通用的 API,从应用层抽象出 ARM 与 DSP 的
物理连接特性,从而降低用户开发程序的复杂度。DSPLINK 可以为用户提供以下
API 服务:
基本的处理器控制;
基于逻辑通道的数据传输;
基于 DSP/BIOS 的 MSGQ 模块的消息传递机制,支持 Zero Copy 和
Processor Copy 两种物理机制的消息传递。
二、 DSPLINK简介
DSPLINK 的软件架构如下图示:
1 DSPLINK之GPP处理器
从上图看,在 GPP 端,一般运行一个操作系统,基于 GPP 还有以下模块:
OS 抽象层
:该层包含了 DSPLINK 需要的一些通用的 OS 服务部件,提供一套通
用的 API 与 OS 的其他组件隔离,其他组件通过 API 访问不进行直接的访问。而此
特性也使 DSPLINK 可以方便的移植到不同操作系统中。
LINK Driver:该层包含了基于 GPP 与 DSP 的物理连接的底层控制操作,负责
GPP 与 DSP 之间的数据传输和 DSP 的运行等操作。
1

Processor Manager:该层维护一个针对所有模块的 Book-Keeping 信息,
通过 API 给用户提供通过 LINK Driver 的控制操作。
DSP/BIOS LINK API:该层是提供给 GPP 端的接口,是非常轻小型的组件,
API 层可以认为是基于 PROCESSOR MANAGER 和 LINK DRIVER 之上的
层。
2 DSPLINK之DSP处理器
LINK DRIVER 是 DSP/BIOS 中驱动的一部分,该部分驱动只负责基于物理连
接之上与 GPP 之间的交互。DSP 端没有 DSPLINK 的 API,通信是基于
DSP/BIOS
TM
模块上的 SIO、GIO、MSGQ 模块来实现的。
3 DSPLINK关键组件
3.1 PROC
PROC 组件表述应用空间的 DSP 处理器,PROC 是处理器的缩写。该组件提供以
下服务:
初始化 DSP,使之能从 GPP 端进行
访问
加载 DSP 的代码至 DSP 处理器
从 DSP 代码制定的地址运行 DSP 程序
读写 DSP 端的地址空间
停止 DSP 端程序的运行
其他一些平台专有的控制操作
3.2 CHNL
CHNL 是 channel 的缩写,该组件表述应用空间的一个逻辑数据传输通道,负
责 GPP 与 DSP 之间的数据传输。通道 channel 的概念如下述:
一种 GPP 与 DSP 端传
输数据的方式
一个基于 GPP 与 DSP 的物理连接上的逻辑实体映射
唯一的数字标识,一个专用连接到 DSP 的一组 channel 中的某个 channel
无方向性,通道方向可以在运行时进行配置
多通道复用在 DSP 端与 GPP 端的一条物理连接上,物理连接基于 link 和相
关 link 驱动的特性。被传输的数据中不包含目的和源地址的任何信息,数据发送与
接收端的数据通路需要在应用前建立完毕。该组件采用 issue-reclaim 模式进行数
据传输,基于 DSP/BIOS
TM
的 SIO 模块模仿 issue-reclaim 行为模式。
2

3.3 MSGQ
MSGQ 是 message queue 的缩写,表述基于 message 的队列,负责 GPP
与 DSP 端的可变长度的短消息交互,基于 DSP/BIOS
TM
的 MSGQ 模块实现。
message 的发送接收都通过消息队列实现,消息接收者从消息队列接收信息,
而消息发送者将数据写入到消息队列中,一个消息队列只可以有一个接收者,但可
以有多个发送者。一个任务可以读写多个消息队列。
3.4 POOL
POOL 模块提供了 API 用于控制存储器池的创建和关闭,POOL 创建的存储
器池由 CHNL 和 MSGQ 组件使用,用于创建数据传递和消息传递的缓存区。
三、 DSPLINK配置
1 DSPLINK源码
DSPLINK 的源码位于开发套件安装目录下的 dsplink_1_30_08_02,即:
/opt/dvevm_1_20/dsplink_1_30_08_02/packages/dsplink,源码目录树如下图示:
3
剩余10页未读,继续阅读

















安全验证
文档复制为VIP权益,开通VIP直接复制

评论8