1、DSPLINK介绍
1.1GPP端
GPP(General Purpose Processor)是指和DSP端通信的通用处理器,在本文特指OMAPL138平台的ARM端。
GPP OS:指通用处理器上的操作系统,本文特指OMAPL138平台ARM端Linux操作系统。
OS ADAPTATION LAYER:指操作系统抽象层,包含了DSPLINK需要的一些通用的OS服务部件,提供了一套通用的API接口,与OS的其他组件隔离。其他组件通过API访问,而不直接访问DSPLINK,此特性使DSPLINK可以方便的被移植到不同操作系统中。
LINK DRIVER:指连接驱动层,包含了基于GPP与DSP的物理连接的底层控制操作,负责GPP与DSP之间的数据传输和DSP的运行等操作。
PROCESSOR MANAGER:指进程管理层,它维护一个针对所有模块的Book-Keeping信息,通过 API给用户提供通过LINKDRIVER的控制操作。
DSP/BIOSTM LINK API:指提供给GPP端的接口,是非常轻小型的组件,API层可以认为是基于PROCESSOR MANAGER和 LINK DRIVER之上的层。
1.2 DSP端
DSP端在本文特指OMAPL138平台的DSP端。
DSP/BIOS:指DSP端的BIOS轻量级操作系统,同时它是一个实时操作系统。本文提到的DSPlink在ARM端是基于Linux系统,而在DSP端时基于DSP/BIOSTM。也就是说,如果使用DSPlink调用DSP,那么编写DSP程序时必须要选择操作DSP/BIOSTM支持。
LINK DRIVER:LINK DRIVER是DSP/BIOS中驱动的一部分,该部分驱动只负责基于物理连接之上与GPP之间的交互。DSP端没有DSPLINKAPI,和GPP之间的通信是基于DSP/BIOS中的SIO、GIO、MSGQ模块来实现的。
OTHER DRIVERS:指DSP端其他驱动程序。
1.3DSPLINK关键组件
GPP端的DSPLINK关键组件有PROC、CHNL、MSGQ、POOL、NOTIFY、MPCS、MPLIST、RINGIO。
1.3.1 PROC
PROC表述应用空间的DSP处理器,提供以下服务:
初始化DSP,使之能从GPP端进行访问
从GPP端加载DSP的代码至DSP处理器
从DSP代码制定的地址运行DSP程序
读写DSP端的地址空间
停止DSP端程序的运行
其他一些平台专有的控制操作
1.3.2 CHNL
CHNL是channel的缩写,该组件表述应用空间的一个逻辑数据传输通道,负责GPP与DSP之间的数据传输。通道channel的概念如下述:
一种GPP端与DSP端传输数据的方式
一个基于GPP与DSP的物理连接上的逻辑实体映射
唯一的数字标识,标记连接到DSP的一组channel中的某个channel
无方向性,通道方向可以配置
DSP端与GPP端的一条物理连接被多通道复用,被传输的数据中不包含目的地和源地址的任何信息,数据发送与接收端的数据通路需要在应用前进行显式的建立,采用issue-reclaim模式进行数据传输。
1.3.3 MSGQ
MSGQ是message queue的缩写,表述基于message的消息队列,负责GPP与DSP端的可变长度的短消息交互,基于DSP/BIOSTM的MSGQ模块实现。
message的发送接收都通过消息队列实现,消息接收者从消息队列接收信息,而消息发送者将数据写入到消息队列中,一个消息队列只可以有一个接收者,但可以有多个发送者。一个任务可以读写多个消息队列。
1.3.4 POOL
此模块提供了API 用于配置共享内存区域,同时还提供两个CPU间的缓存数据同步的API 接口。此模块提供如下功能:
通过调用打开(open)和关闭(close)配置共享内存区域
在共享内存区域内分配或释放缓存
分配的内存地址可以在不同的地址空间内转换
在不同CPU核之间实现内存数据的同步
1.3.5 NOTIFY
此组件允许应用程序为发生在远程处理器上的事件通知(Notification )注册,并发送事件通知给远程的处理器。允许应用程序为远程处理器上的事件注册一个带事件回调函数;使能应用程序发送事件通知到远程处理器;同时,应用程序也可以发送一个事件处理的选项值。
Notify组件为事件通知定义了优先级,优先级通过事件编号来实现,低编号的事件享有更高的优先级。如果事件通知不再需要使用,应用程序也可以实时注销其相应的回调函数。
1.3.6 MPCS
应用程序MPCS 实现GPP和DSP(Multi-ProcessorCritical Section)互斥访问共享
的数据结构。应用程序有时候需要定义属于自己的,并能够被多个处理器访问的数据结构,
用于多个处理器之间信息的通信。但是,应用程序必须保证多个处理器,或者每个处理上的各个任务之