您的位置 首页 软件

一种根据OMAPL138的双核通讯规划

以合众达公司的SEED—DIM138开发板作为硬件开发平台,利用SYSLINK驱动设计了一种可用于DSP和ARM之间通信的握手机制。ARM端运行Linux操作系统,进行人机交互;DSP端运

摘要:以合众达公司的SEED—DIM138开发板作为硬件开发渠道,运用SYSLINK驱动规划了一种可用于DSP和ARM之间通讯的握手机制。ARM端运转Linux操作体系,进行人机交互;DSP端运转SYSBIOS操作体系,进行数据存储和买时运算。两者运用SYSLINK进行多核通讯,经过调用SYSLINK的API完结ARM和DSP之间的通讯。

要害词:OMAPL138;SYSLINK;SYSBIOS;双核通讯

导言

本规划首要介绍一种根据OMAPL138双核通讯的握手机制。在ARM端运转Linux体系,首要处理人机交互使命;而在DSP端运转SYSBIOS,进行实时处理。

1 OMAPL138双核处理器

OMAPL138是一款集成了ARM926EJ—S和TMS320C6748 DSP的双核处理器。ARM926EJ—S内核选用流水线结构,因而,处理器和存储器体系的一切部件都能够接连的作业,DSP核选用了一个2级根据高速缓存的架构。此外,OMAPL138还包含了一系列的外设,ARM和DSP能够独自操作这些外设。OMAPL138渠道的双核通讯根底是中止和内存同享。

OMAPL138双核处理器的内部体系框图如图1所示。

a.jpg

以OMAPL138为硬件渠道规划双核通讯,具有以下几个优势:

①开放性好。OMAPL138渠道是一种开放式体系结构,具有规范化的接口,可运用第三方开发的新功用与新程序;而且,其规范接口答应软件很容易地在不同渠道间移植,规划代码可重复运用。

②可编程性好。OMAPL138的两个微处理器核均可编程,只需改写程序就能彻底改动OMAPL138渠道的功用。

③功耗低。OMAPL138将ARM核和DSP核集成在一个芯片中,大大降低了额定功耗,且各部分的时钟办理彼此独立,可有用操控功耗。

④体系发动后两核独自运转。

2 Linux开发环境树立

2.1 主机开发环境的树立

双核通讯需求3个体系,即Windows体系、PC Linux体系和ARM Linux体系。

本规划PC机选用Windows7+VMware虚拟机+Linux的开发环境,其间VMware选用的是8.0版别,Linux选用的是ubuntu-10.04.4桌面版。

2.2 穿插编译环境的树立

在开发之前,还需求树立一个穿插开发环境,这是一套由编译器、链接器和libc库等组成的开发环境。其开发模型如图2所示。

b.jpg

图2中,TARGET是方针板,HOST是开发主机。在开发主机上,能够装置开发东西,修改、编译方针板的Linux引导程序、内核和文件体系,然后在方针板上运转。这种在主机环境下开发,在方针板上运转的开发形式叫做穿插开发。

构建穿插开发环境,首先要装置穿插编译东西链,然后需求在环境变量PATH中增加途径,该途径有必要是东西链的装置途径。

3 双核通讯规划

体系需求预留内存用于双核通讯,这是十分要害的一点。因为SEED—DIM138的DDR只要64 MB,因而在本规划中Linux内核只办理从0x C000 0000开端的32 MB的内存,剩余的从0x C200 0000~0x C3FF FFFF的32 MB的内存留给SYSLINK用于双核通讯。

3.1 开发东西

本规划用到的DSP端开发东西包含:集成开发环境(CCS),多线程、多使命操作体系(SYSBIOS),第三方算法库规范(eXpress DSP Component,XDC)。ARM端开发东西包含:Li nux、穿插编译东西。除此之外,还要用到的软件开发东西是SYSLINK和IPC。

为了缩短开发时刻,还装置了多核软件开发组件——MCSDK,有助于在一致渠道上运用SYSBIOS或Linux。

3.2 开发板发动

Windows作业台经过串口和JTAG、网口与SEED—DIM138开发渠道衔接。装备PC机端的超级终端,设置串口参数:波特率为115 200,数据位为8,奇偶校验无,中止位为1,数据流操控无。翻开Windows PC机串口操控台,衔接串口。开发板拨码开关拨到100 011,上电后,将编译好的内核和文件体系下载到开发板,并设置内核发动参数如下:

U—Boot—DIM138>setenv bootargs,console=ttysl,115200n8root=/dev/mtdblock4 rw rootfs=jffs2 mem=32@0xc0000000

然后保存,复位开发板从NAND FLASH发动,并加载iffs2文件体系。

开发板发动完结后,运用tftp服务将在ubuntu下编译好的SYSLINK驱动下载到开发板上,运用如下指令手动加载驱动:

insmod SYSLINK.ko TRACE=1 TRACEFAILURE=1 TRACECLASS=3

本规划顶用一个简略的LED例程规划双核通讯。在例程中对外部内存的分配如表1所列,这部分内容在cfg和bld文件中进行装备。

c.jpg

3.3 软件规划

软件规划根本代码流程如图3所示。软件规划中,DSP核的处理器ID为0,ARM核的处理器ID为1,DSP端调用IPC模块的MultiProc.h中的MultiProc_getId()函数获取HOST端的ID,HOST端运用相同的函数获取DSP端的ID,以此作为通讯的根底。通讯交互流程能够看做是一种“乒乓”操作,最终还要开释资源。本规划要完结的操作是,在程序中经过对LED对应的GPIO相关寄存器装备使2个LED接连闪耀2次,再别离顺次点亮2个LED,最终顺次平息2个LED。规划中要用到的API如表2所列。

d.jpg
e.jpg

在OMAPL138的ARM Linux操作体系中,SYSLINK供给了一个“slaveloader”组件来加载、发动、中止DSP处理器,规划了对DSP核的办理,一起也是运用“slaveloade”组件来运转SYSLINK示例程序。

将编译好的使用程序下载到开发板,运转后编写run.sh脚本,即完成了双核通讯的进程。脚本的内容为:set—x

./slaveloader startup DSP server_dsp.xe674

./app_host DSP

./slaveloader shutdown DSP

根本流程是:ARM端发动DSP并加载.xe674格局的SYS/BIOS文件→发动ARM端使用程序→封闭DSP核。

结语

本规划完结了一个简略的双核通讯进程,为杂乱的双核通讯,如A/D数据收集和FFT运算奠定了开发根底,在工程上具有必定的使用价值。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/ruanjian/296865.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部