《CMEM与DSPLINK详解(一)》:CMEM与DSPLINK简介

CMEM与DSPLINK简介

在双核(ARM+DSP)系统中(典型的为达芬奇系统),如何共享缓冲区并进行通信是一个值得学习和思考的问题。

CMEM是一个连续物理存储空间分配模块,使得ARM端Linux进程和DSP端算法之间能够共享缓冲区。DSPLINK即DSP/BIOS LINK是基于DaVinci架构处理器的ARM与DSP端进行通信。

1、CMEM

由于应用程序是运行在 MontaVista Linux 之上,在应用程序里进行的地址空间都是虚拟地址,实际上的物理地址空间不一定是连续的,当将这个指针传递给
DSP 端的算法时, DSP 不能够进行处理,因为 DSP 端的算法运行在 DSPBIOS 之上,而 DSP端只能访问实的物理地址,为了解决这个问题,
TI 提供了一个 CMEM 模块,用于解决这个问题。

CMEM
是一个连续物理存储空间分配模块,使得 ARM 端 Linux 进程和 DSP 端算法之间能够共享缓冲区。当应用程序需要在共享缓存区动态申请一个连续的物理空间时,通过调用
CMEM 的 API 可以实现,申请得到的空间可以供 DSP 端访问,进行算法处理时数据的传递与处理。

对于DVS365开发套件,CMEM位于:..\dvsdk_2_10_00_17\linuxutils_2_24_02\packages\ti\sdo\linuxutils\cmem

注意:DVS365下的cmem下的demo和测试代码make不通过,待处理。。。。基本测试流程如下图所示:

CMEM Demo 提供了以下测试程序, apitest 用于演示测试 CMEM 的 API 功能,translate 用于演示虚拟地址与实物理地址之间的转换,具体流程如下图所示:

2、DSPLINK

DSPLINK 即 DSP/BIOSTMLINK
是基于 DaVinci 架构处理器的 ARM 与 DSP 端进行通信, DSPLINK 提供了一套通用的 API,从应用层抽象出 ARM 与 DSP 的物理连接特性,从而降低用户开发程序的复杂度。
DSPLINK 可以为用户提供以下 API 服务:
--基本的处理器控制;
--基于逻辑通道的数据传输;
--基于 DSP/BIOS 的 MSGQ 模块的消息传递机制,支持 Zero Copy和 ProcessorCopy
两种物理机制的消息传递。

在实际应用中,应用可能不需要
DSPLINK 提供的所有模块功能,而且可能只需要一种消息传递机制,因此 TI 的 DSPLINK 提供了可配置功能,用户可以根据自己的需要进行裁剪配置,以满足应用需求。

DSPLINK的软件架构如下图所示:

2.1、GPP

从上图看,在 GPP 端,一般运行一个操作系统,基于 GPP 上还有以下模块:OS抽象层、LINK
Driver、Processor ManagerDSP/BIOS LINK API。

--OS抽象层
:该层包含了 DSPLINK 需要的一些通用的 OS 服务部件,提供一套通用的 API 与 OS 的其他组件隔离,其他组件通过API
访问不进行直接的访问。而此特性也使DSPLINK 可以方便的移植到不同操作系统中。

--LINK
Driver
:该层包含了基于 GPP 与 DSP 的物理连接的底层控制操作,负责
GPP 与 DSP 之间的数据传输和 DSP 的运行等操作。

--Processor
Manager
:该层维护一个针对所有模块的 Book-Keeping 信息,通过
API 给用户提供通过 LINK Driver 的控制操作。

--DSP/BIOS
LINK API
:该层是提供给 GPP 端的接口,是非常轻小型的组件,API 层可以认为是基于 PROCESSOR MANAGER 和LINK DRIVER 之上的层。

2.2、DSP

LINK DRIVER 是 DSP/BIOS 中驱动的一部分,该部分驱动只负责基于物理连接之上与 GPP
之间的交互。 DSP 端没有 DSPLINK 的 API ,通信是基于DSP/BIOSTM 模块上的 SIO、 GIO、 MSGQ 模块实现。

时间: 2024-10-27 16:41:05

《CMEM与DSPLINK详解(一)》:CMEM与DSPLINK简介的相关文章

【H.264/AVC视频编解码技术详解】三. H.264简介

<H.264/AVC视频编解码技术详解>视频教程已经在"CSDN学院"上线,视频中详述了H.264的背景.标准协议和实现,并通过一个实战工程的形式对H.264的标准进行解析和实现,欢迎观看! "纸上得来终觉浅,绝知此事要躬行",只有自己按照标准文档以代码的形式操作一遍,才能对视频压缩编码标准的思想和方法有足够深刻的理解和体会! 链接地址:H.264/AVC视频编解码技术详解 本节视频免费 一. H.264视频编码标准 H.264视频编码标准是ITU-T与

《CMEM与DSPLINK详解(二)》:DSPLINK关键组件

DSPLINK关键组件 DSPLINK关键组件有8个,下面分别进行介绍. 1.PROC  PROC 组件表述应用空间的 DSP 处理器, PROC 是处理器的缩写.该组件提供以下服务: -- 初始化 DSP,使之能从 GPP 端进行访问: -- 加载 DSP 的代码至 DSP 处理器: -- 从 DSP 代码制定的地址运行 DSP 程序: -- 读写 DSP 端的地址空间: -- 停止 DSP 端程序的运行: -- 其他一些平台专有的控制操作: 目前版本只支持一个处理器,而 API 设计支持多个

《极客学院 --NSAttributedString 使用详解-4-UITextKit 简介》学习笔记(待处理)

如果要在富文本中添加图片的话,用UITextKit才能实现. 什么是UITextKit:它就是处理富文本的框架. 什么时候使用UITextKit:比如要实现图文混搭的节目. 在gitHub中 https://github.com/YouXianMing/BookTextView 可以下载一个关于UITextKit的Demo. 以下是ViewController中的类: 1 #import "ViewController.h" 2 #import "ParagraphAttri

《ZooKeeper:分布式过程协同技术详解》——第1章 简介1.1 ZooKeeper的使命

第一部分 ZooKeeper的概念和基础这一部分适合任何对ZooKeeper感兴趣的读者,该部分介绍ZooKeeper所处理的问题,以及在ZooKeeper的设计中的权衡取舍. 第1章 简介 在计算机诞生之后很长的一段时间里,一个应用服务是在一个独立的单处理器计算机上运行一段程序.时至今日,应用服务已经发生了很大的变化.在大数据和云计算盛行的今天,应用服务由很多个独立的程序组成,这些独立的程序则运行在形形色色.千变万化的一组计算机上.相对于开发在一台计算机上运行的单个程序,如何让一个应用中多个独

Python函数式编程指南(四):生成器详解

  这篇文章主要介绍了Python函数式编程指南(四):生成器详解,本文讲解了生成器简介.生成器函数.生成器函数的FAQ等内容,需要的朋友可以参考下 4. 生成器(generator) 4.1. 生成器简介 首先请确信,生成器就是一种迭代器.生成器拥有next方法并且行为与迭代器完全相同,这意味着生成器也可以用于Python的for循环中.另外,对于生成器的特殊语法支持使得编写一个生成器比自定义一个常规的迭代器要简单不少,所以生成器也是最常用到的特性之一. 从Python 2.5开始,[PEP

android-iconify 使用详解

android-iconify 使用详解 有图有真相 1.android-iconify简介 iconify的github地址:https://github.com/JoanZapata/android-iconify 项目地址:http://joanzapata.com/android-iconify iconify是一个矢量图标库,包含使用 Dave Gandy 制作的超过370中矢量字体图标,可以使Android应用开发者免于制作多种适用于不同屏幕大小尺寸的图片,从而提高开发者工作效率.

Filter过滤器和Listener监听器详解

Filter过滤器和Listener监听器详解 Filter过滤器 Filter的简介 对资源的访问进行过滤,相当于小区的保安,进去要检查,出去还要检查. Filter的使用 编写一个类,继承并实现javax.servlet.Filter. package com.jyh.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.s

【OS】AIX之topas命令详解

[OS]AIX之topas命令详解 AIX基本命令topas简介 Posted on 2015 年 11 月 11 日 by xiaoyu 由于最近工作需要涉及到AIX主机.存储层面,就对这方面的内容做个简要的笔记,以供后续参考. topas命令利用System Performance Measurement Interface(SPMI) API获得有关信息,使系统开销保持最小程度,topas命令用于监控各种系统资源,比如cpu使用情况.内存和换页空间.磁盘性能.网络性能以及NFS统计信息等

Windows CE系统开发,BSP包中的几个常见文件详解

Windows CE系统开发,BSP包中的几个常见文件详解 BSP介绍(Board Support Package)是介于底层硬件和上层软件之间的底层软件开发包,它主要功能为屏蔽硬件,提供操作系统及硬件驱动,具体功能包括: (1)      单板硬件初始化,主要是CPU的初始化,为整个软件系统提供底层硬件支持: (2)      为操作系统提供设备驱动程序和系统中断服务程序: (3)      定制操作系统的功能,为软件系统提供一个实时多任务的运行环境: (4)      初始化操作系统,为操作