DSP+ARM多核异构开发环境SYSLINK搭建OMAPL138

DSP+ARM多核异构开发环境搭建OMAPL138

注意: 环境为Ubuntu 12.04 只能是这个环境。我甚至在Ubuntu16.04上面安装了VMware,然后,在装了一个Ubuntu 12.04 x86版本。

导语与感想

OMAPL138属于多核异构平台(DSP+ARM),多核通信是多核异构平台的精髓部分,目前市面上流行的还有ZYNQ平台(FPGA+ARM),同样通信机理复杂。德州仪器OMAPL138和Davinci使用一样的多核通信机理。

这个机制相当复杂,又要懂Linux,又要会调试DSP,又要熟练掌握ARM的嵌入式Linux,又要抓住多核通信机制,实在让人抓狂。DSP端使用CCS,用JTAG口进行仿真,ARM端使用终端GDB命令进行动态调试配合调试输出完成多核通信的开发。

好吧,步入正题了,准备好以下的素材(不要被吓到)

一定要对于文件、编译器有个很好的管理,杜绝东一块西一块,左一个文件,又一个文件,否则到时候自己蒙了。本人习惯在自己用户的文件夹创建opt文件夹(用于安装非root权限运行的软件),script文件夹(用于处理一些脚本文件)、work(待交叉编译的源代码文件)、setup(安装、压缩包文件)、workspace(编程工程文件路径)、lib(第三方库文件夹)

搭建前准备素材

CGT_组件:ti_cgt_c6000_7.3.0.tar.gz
多核通信组件:mcsdk_1_01_00_02_setuplinux.bin
C6000的Starterware库:OMAPL138_StarterWare_1_10_04_01-Linux-x86-Install
Qt图形界面库:qwt-6.1.0.tar.bz2
DSP BIOS组件:bios_5_41_10_36.tar.gz
dsplink组件:dsplink_linux_1_65_00_03.tar.gz
Qt源文件:qt-everywhere-opensource-src-4.8.3.tar.gz
DSP编译工具链:xdctools_3_22_01_21.tar.gz
CCS的Linux版本:ccs 5.5 for Linux
内核源文件:linux-3.3.tar.bz2
arm-linux交叉编译工具链:arm-2009q1-161-arm-none-eabi.bin
以上这些文件,全部存在~/setup文件下

环境前提

Ubuntu版本为12.04,(不要尝试新版,OMAPL停更了,组件最新支持到ubuntu12.04)
配置好交叉编译环境
Linux3.3内核编译正确
Qte编译正确
CCS的Linux版本安装好
编译Linux3.3内核

参考我的博客:(基于OMAPL:Linux3.3内核的编译)[https://www.cnblogs.com/sigma0/p/9149041.html]

编译正确Qt

Qt版本使用的是Qt4,Qt5还没有实验,等着实验完Qt5会过来更新。

参考我的博客:(Linux编译Qt4的环境_OMAPL138
)[https://www.cnblogs.com/sigma0/p/8168313.html]

最后我之前设定的Qt make install的路径室/opt/qt-arm-4.8.3 (后面会用到)

编译QWT组件

qwt 全称是”Qt Widgets for Technical Applications”,是一个基于 LGPL 版权协议的开源
项目,可生成各种统计图。QWT的编译需要基于上一章节编译QT,编译出的qmake编译器

解压qwt

准备qwt-6.1.0.tar.bz2文件,解压到~/work路径下:
tar -xvf qwt-6.1.0.tar.bz2 -C ~/work

配置QWT编译环境(使用创龙公司)

需要修改两个地方:

  • 在”qwt-6.1.0/qwtconfig.pri”文件第 100 行 QwtOpenGL 和 119 行 QwtDesigner 前面增加。符号”#”,表示注释掉此两行,因为此例程没有使用 QwtOpenGL 和 QwtDesigner。如下图所示:
  • 修改 QWT_INSTALL_PREFIX 最后QWT输出路径。

在 qwt 目录下执行以下命令产生 Makefile 编译文件:
/opt/qt-arm-4.8.3/bin/qmake

ls 如果有Makefile文件则表示配置成功。

编译QWT和安装

在 qwt 根目录下执行以下命令编译 qwt 组件源码:
make -j4 启动4个线程编译

编译完成后:

在 qwt 根目录下执行以下命令安装 qwt 组件:
sudo make install

该组件会解压到QWT_INSTALL_PREFIX指定的路径中:/opt/qwt-6.1.0

将库发送到开发板(HOST)端

将”/opt/qwt-6.1.0/lib”下的所有文件拷贝到开发板文件系统”/usr/lib”目录下,用SD卡也可以,用scp命令也可以。

安装CCS

安装过程请参考我发在贴吧上的教程:我这里用的是CCS5.5版本,大同小异 (在LINUX(ubuntu)系统下装CCSv6方法)[https://tieba.baidu.com/p/3698761357]

注意路径安装到 /opt/ti下

安装StarterWare库

执行:sudo ./OMAPL138_StarterWare_1_10_04_01-Linux-x86-Install
安装路径为: /opt/ti下

安装配置MCSDK

MCSDK是多核通信组件。

安装MCSDK

准备好mcsdk_1_01_00_02_setuplinux.bin,注意路径安装到/opt/ti下,完全安装就好。

sudo ./mcsdk_1_01_00_02_setuplinux.bin

配置MCSDK

进入”mcsdk_1_01_00_02”目录下,启动 MCSDK 设置脚本,根据不同主机设置,进行tftp、nfs、U-Boot 等配置。在设置之前,务必保证虚拟机网络畅通。

cd /opt/ti/mcsdk_1_01_00_02/
sudo ./setup.sh

  • 问你NFS目标地址安装在哪里,直接回车
  • 问你是否是root权限启动的配置,直接回车
  • 创建EXEC_DIR等等环境变量,回车
  • 问tftp路径直接回车
  • 串口部分,我们用的室CH340所以是/dev/ttyUSB0
  • 问ip,输入omapl138板子的ip地址
  • 问你Linux Kernal位置,我的在SD卡
  • 问你root file system的位置,我的在SD卡
  • 问nfs文件系统启动方式启动方式,直接回车
  • 启动tftp下载内核镜像,n
  • installing linux devkit Y
  • 最后看到TI SDK SETUP COMPLETED配置已经完成。

SYSLINK的配置和安装

cd /opt/ti/syslink_2_21_01_05
进入该路径下,打开配置文件:
sudo vim products.mak
要改的内容在下面

DEVICE = OMAPL1XX
SDK = NONE
EXEC_DIR = /media/delvis/rootfs // host root文件系统路径 可以在SD卡上(需要挂载),也可以暂时存储到你电脑临时文件夹上,到时候拷贝到SD卡上
DEPOT = /opt/ti // MCSDK 安装路径
1
2
3
4
5
接下来配置的如图所示:

配置完成后保存退出。

编译syslink源代码

编译 syslink 之前,先将以下两个宏定义添加到 syslink 中的 Omapl1xxIpcInt.c、omapl1xx_phy_shmem.c、omapl1xxpwr.c 文件开头,否则编译会出错。
(1) /opt/ti/syslink_2_21_01_05/packages/ti/syslink/ipc/hlos/knl/notifyDrivers/arch/omapl1xx/Omapl1xxIpcInt.c
(2) /opt/ti/syslink_2_21_01_05/packages/ti/syslink/family/hlos/knl/omapl1xx/omapl1xxdsp/Linux/omapl1xx_phy_shmem.c
(3) /opt/ti/syslink_2_21_01_05/packages/ti/syslink/family/hlos/knl/omapl1xx/omapl1xxdsp/omapl1xxpwr.c

Omapl1xxIpcInt.c 文件,修改在头处添加文件
#undef __ASM_ARCH_HARDWARE_H
#include <mach/hardware.h>
1
2
omapl1xx_phy_shmem.c文件,修改在头文件处添加
#undef __ASM_ARCH_HARDWARE_H
#include <mach/hardware.h>
1
2
omapl1xxpwr.c 文件,修改在头文件处添加
#undef __ASM_ARCH_HARDWARE_H
#include <mach/hardware.h>
1
2
编译syslink

cd /opt/ti/syslink_2_21_01_05
make syslink

编译syslink示例

make samples

安装syslink驱动程序

sudo make install
返回到在setup.sh配置syslink的时候指定的rootfs目录,ls lib/modules/3.3.0/kernel/drivers/dsp/

可以看到在文件系统”lib/modules/3.3.0/kernel/drivers/dsp/”目录下有 syslink 驱动程序syslink.ko 文件和文件系统根目录下有”ex**_##”的示例程序。
就配合环境成功了。

参考文献

[1]创龙公司,基于 OMAPL138 的多核软件开发组件 MCSDK 开发入门
[2]创龙公司,OMAPL138基于SYSLINK的双核例程

作者:Carlos Wei
来源:CSDN
原文:https://blog.csdn.net/u014281970/article/details/82145639
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录第一章 CCS概述 41.1 CCS概述 41.2 代码生成工具 61.3 CCS集成开发环境 81.3.1 编辑源程序 81.3.2创建应用程序 91.3.3 调试应用程序 91.4 DSP/BIOS 插件 101.4.1 DSP/BIOS 配置 101.4.2 DSP/BIOS API 模块 111.5 硬件仿真和实时数据交换 131.6 第三方插件 161.7 CCS文件和变量 171.7.1安装文件夹 171.7.2文件扩展名 171.7.3环境变量 181.7.4增加DOS环境空间 19第二章 开发一个简单的应用程序 202.1 创建工程文件 202.2 向工程添加文件 222.3 查看源代码 242.4 编译和运行程序 262.5 修改程序选项和纠正语法错误 262.5 修改程序选项和纠正语法错误 272.6 使用断点和观察窗口 292.7 使用观察窗口观察STRUCTURE变量 312.8 测算源代码执行时间 322.9 进一步探索 342.10进一步学习 34第三章 开发DSP/BIOS程序 353.1 创建配置文件 353.2 向工程添加DSP/BIOS文件 373.3 用CCS 测试 393.4 测算DSP/BIOS代码执行时间 413.5 进一步探索 433.6 进一步学习 43第四章 算法和数据测试 444.1 打开和查看工程 444.2 查看源程序 464.3 为I/O文件增加探针断点 484.4 显示图形 504.5 执行程序和绘制图形 514.6 调节增益 534.7 观察范围外变量 534.7 观察范围外变量 544.8 使用GEL文件 564.9 调节和测试PROCESSING函数 574.10 进一步探索 594.11 进一步学习 60第五章 程序调试 615.1 打开和查看工程 615.2 查看源程序 635.3 修改配置文件 665.4 用EXECUTION GRAPH查看任务执行情况 695.5 修改和查看LOAD值 705.6 分析任务的统计数据 735.7 增加STS显式测试 755.8 观察显式测试统计数据 765.9 进一步探索 785.10 进一步学习 78第六章 实时分析 796.1 打开和查看工程 796.2 修改配置文件 806.3 查看源程序 826.4 使用RTDX控制修改运行时的LOAD值 846.5 修改软中断优先级 876.6 进一步探索 886.7 进一步学习 88第七章 I/O I7.1 打开和查看工程 I7.2 查看源程序 II7.3 SIGNALPROG应用程序 V7.4 运行应用程序 VI7.5 使用HST和PIP模块修改源程序 VIII7.6 HST和PIP资料 XI7.7 在配置文件中增加通道和SWI XII7.8 运行修改后的程序 XV7.9 进一步学习 XV

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值