基于omapl138+fpga核心板多核软件开发组件mcsdk开发入门(上)

Tronlong818 Tronlong818     2023-03-01     479

关键词:

本文测试板卡为创龙科技 SOM-TL138F 是一款基于 TI OMAP-L138(定点/浮点 DSP C674x + ARM9)+ 紫光同创 Logos/Xilinx Spartan-6 低功耗 FPGA 处理器设计的工业级核心板。核心板内部OMAP-L138 与 Logos/Spartan-6 通过 uPP、EMIFA、I2C 通信总线连接,并通过工业级 B2B连接器引出网口、EMIFA、SATA、USB、LCD 等接口。

 

核心板经过专业的 PCB Layout 和高低温测试验证,稳定可靠,可满足各种工业应用环境。用户使用核心板进行二次开发时,仅需专注上层运用,降低了开发难度和时间成本,可快速进行产品方案评估与技术预研

MCSDK介绍

德州仪器(TI)2013年11月推出基于低功耗OMAP-L138 DSP + ARM9™处理器的多核软件开发组件——MCSDK(Multicore Software Development Kits),帮助开发人员缩短开发时间,实现针对TI TMS320C6000™高性能数字信号处理器(DSP)的扩展。为工业、通信、电信以及医疗市场开发各种应用的客户现在无需转移其它软件平台,便可升级至高性能器件。

TI MCSDK提供高度优化的特定平台基础驱动器捆绑包,可实现基于TI器件的开发。此外,MCSDK还可为实现便捷编程提供定义明确的应用编程接口,支持未来向更高性能的TI多核平台的移植,因此开发人员无需从头设计通用层。MCSDK不仅可帮助开发人员评估特定器件开发平台的软硬件功能,而且还可帮助他们快速开发多核应用。此外,它还有助于应用在统一平台上使用SYS/BIOS或Linux。MCSDK的各内核通常还可指定运行Linux应用,作为控制平台,而其它内核则可同时分配高性能信号处理工作。借助这种异构配置的高灵活性,软件开发人员可在TI多核处理器上实施全面解决方案。在TI OMAP-L138应用实例中,内部ARM9处理器可分配嵌入式Linux等高级操作系统执行复杂的IO协议栈处理,而TMS320C674x DSP则可运行TI RTOS(上述SYS/BIOS)实时处理任务。

TI DSP业务经理Ramesh Kumar指出:“能为OMAP-L138处理器提供MCSDK我们深感振奋。新老客户都将受益,包括在整个TI C6000™ DSP中可使用相同的软件、支持编程高效率、加速产品上市进程以及更高的投资回报等。”

有了MCSDK,开发人员可获得各种优化型DSP库,包括数学库、数字信号处理库、影像视频处理库、电信库以及语音视频编解码器等,并可从中获益。此外,TI OMAP-L138处理器还具有应用优化型特性与外设的独特组合,包括以太网、USB、SATA、视频端口接口(VPIF)以及uPP等。

MCSDK软件安装

先按照软件安装文档安装Linux版本CCS,搭建好TFTP、NFS开发环境。然后在产品资料"Tools\\Linux\\"目录中找到"
mcsdk_1_01_00_02_setuplinux.bin"安装文件,先将其拷贝至共享目录,然后安装MCSDK。

Host# cp /mnt/hgfs/shareVM/mcsdk_1_01_00_02_setuplinux.bin /home/tl/ti/

Host# cd /home/tl/ti

Host# ./mcsdk_1_01_00_02_setuplinux.bin

 

图 1

弹出如下界面,点击Next。

 

图 2

弹出如下界面,点击Next。

 

图 3

安装路经选择默认,即"/home/tl/ti",确保此路径为CCS的安装路径,如不同,请修改为一致,然后点击Next。

 

图 4

弹出如下界面,点击Next。

 

图 5

弹出如下界面,开始安装MCSDK。

 

图 6

等待如下界面出现,点击Finish完成安装。

 

图 7

设置MCSDK开发环境参数

执行如下命令,设置CCS权限。

Host# sudo chmod -R 777 /home/tl/ti/ccsv5

 

图 8

进入mcsdk_1_01_00_02安装目录下,启动MCSDK设置脚本。请务必保证虚拟机网络畅通,根据不同主机设置,进行TFTP、NFS、U-Boot等配置。由于我司已单独提供U-Boot、内核、文件系统,不使用MCSDK的U-Boot、内核、文件系统,因此如下三者的相关设置可以忽视。

Host# cd /home/tl/ti/mcsdk_1_01_00_02/

Host# sudo ./setup.sh

 

图 9

按Enter键将MCSDK的文件系统安装至默认路经,出现如下界面:

 

图 10

按Enter键,出现如下界面:

 

图 11

按Enter键将MCSDK的Linux内核镜像安装至默认路径,出现如下界面:

 

图 12

按Enter键设置可以进行NFS访问,出现如下界面:

 

图 13

按Enter键设置TFTP服务器下载目录为默认路径(/tftpboot),出现如下界面:

 

图 14

按Enter键,出现如下界面:

 

图 15

按Enter键设置串口为默认设置,出现如下界面:

 

图 16

按Enter键设置默认的U-Boot、TFTP网络变量,出现如下界面:

 

图 17

按Enter键变量中设置为默认的NFS启动方式,出现如下界面:

 

图 18

按Enter键设置为默认的NFS文件系统启动方式,出现如下界面:

 

图 19

按Enter键设置启动时TFTP下载的为默认内核镜像,出现如下界面:

 

图 20

输入:n,然后按Enter键,出现如下界面:

 

图 21

输入:Y,然后按Enter键,出现如下界面:

 

图 22

最后看到"TISDK setup completed!",说明设置已经完成。

备注:如果期间提示,需要安装缺失的组件,根据提示,按"y"安装即可。

syslink配置、编译、安装

安装MCSDK时,会自动将syslink安装在相同的目录下,下文将介绍syslink配置、编译和示例演示。在开始syslink编译之前,请确保以下几点:

  1. 已安装arm-none-linux- gnueabi-gcc-4.3.3交叉编译工具链。
  2. 内核源码已正确编译。
  3. 文件系统源码正确解压在Ubuntu虚拟机。

配置syslink

进入"
/home/tl/ti/syslink_2_21_01_05",打开配置文件products.mak。

Host# cd /home/tl/ti/syslink_2_21_01_05

Host# gedit products.mak

 

图 23

修改如下地方:

备注:由于配置容易出错,已将配置文件products.mak放在产品资料Shell目录下,可以将此文件覆盖"
/home/tl/ti/syslink_2_21_01_05/products.mak",然后再根据实际情况修改即可。

  1. DEVICE = _your_device_

改为 DEVICE = OMAPL1XX //表示编译OMAPL138

 

图 24

  1. SDK = _your_sdk_

改为 SDK = NONE //SDK类型为NONE

 

图25

  1. EXEC_DIR = _your_filesys_

改为 EXEC_DIR =
/home/tl/omapl138/demo-rootfs //syslink驱动和演示程序安装路径,一般设置为NFS或者SD卡的文件系统

 

图26

  1. DEPOT = _your_depot_folder_

改为 DEPOT = /home/tl/ti //MCSDK的安装路径

 

图 27

编译syslink源码

编译syslink之前,先将以下两个宏定义添加至syslink中的Omapl1xxIpcInt.c、omapl1xx_phy_shmem.c、omapl1xxpwr.c文件开头,否则编译会出错。

#undef __ASM_ARCH_HARDWARE_H

#include <mach/hardware.h>

  • 修改Omapl1xxIpcInt.c

执行以下命令修改:

Host# cd /home/tl/ti/syslink_2_21_01_05/packages/ti/syslink

Host# gedit ipc/hlos/knl/notifyDrivers/arch/omapl1xx/Omapl1xxIpcInt.c

 

图 29

 

图 30

添加内容后,保存退出。

  • 修改omapl1xx_phy_shmem.c

在当前路径下,执行以下命令:

Host# gedit family/hlos/knl/omapl1xx/omapl1xxdsp/Linux/omapl1xx_phy_shmem.c

 

图 31

 

图 32

添加内容后,保存退出。

  • 修改omapl1xxpwr.c

在当前路径下,执行以下命令:

Host# gedit family/hlos/knl/omapl1xx/omapl1xxdsp/omapl1xxpwr.c

 

图 33

 

图 34

添加内容后,保存退出。

执行以下命令编译syslink:

Host# cd /home/tl/ti/syslink_2_21_01_05

Host# sudo make syslink

 

图 35

编译成功如下图所示:

 

图 36

编译syslink示例程序

在当前目录,执行以下命令:

Host# sudo make samples

 

图 37

编译成功如下图所示:

 

图 38

至此,整个syslink编译完成。

syslink示例程序演示

安装syslink驱动和示例程序至文件系统

在syslink源码目录下,执行以下命令将syslink驱动和示例程序安装至文件系统:

Host# sudo make install

 

图 39

安装成功如下图所示:

 

图 40

执行以下命令查看是否已经安装syslink驱动和示例程序。

Host# cd /home/tl/omapl138/demo-rootfs/

Host# ls

Host# ls lib/modules/3.3.0/kernel/drivers/dsp/

 

图 41

可以看到在文件系统"
lib/modules/3.3.0/kernel/drivers/dsp/"目录下有syslink驱动程序syslink.ko文件,以及文件系统根目录下有"ex**_##"的示例程序。

运行syslink示例程序

我司提供的U-Boot会根据当前CPU型号和内存大小自动产生推荐的内存分配参数,并将此参数赋值给mem_args变量,U-Boot默认使用mem_args变量值启动系统,下表为部分举例:

表 1

 

CPU型号

内存大小

mem_args变量值

备注

OMAP-L138

128MByte

mem=32M@0xc0000000 mem=64M@0xc4000000

DSP使用32MByte;

ARM使用96MByte;

OMAP-L138

256Myte

mem=32M@0xc0000000 mem=192M@0xc4000000

DSP使用32MByte;

ARM使用224MByte;

 
 
 

将syslink的示例程序demo-rootfs文件夹拷贝至评估板中,启动评估板,进入文件系统的"
demo-rootfs/lib/modules/3.3.0/kernel/drivers/dsp/"路径下,执行命令安装syslink驱动:

Target# modprobe syslink

 

图 42

进入demo-rootfs目录,运行syslink示例程序。

Target# cd /home/root/demo-rootfs/

Target# ./runall.sh

成功运行如下图所示:

 

图 43

 

图 44

syslink示例程序解析

每个示例目录中有readme.txt和run.sh文件说明如何使用示例,而在评估板中运行runall.sh是运行了所有的syslink示例程。

Slaveloader

在OMAPL138的ARM Linux操作系统中,syslink提供了slaveloader组件去加载、启动、停止DSP处理器,实现了对DSP核的管理。同时也是使用slaveloader组件去运行syslink示例程序。

运行"slaveloader"组件有四个参数:

参数1:startup|shutdown|all|powerup|load|start|stop|unload|powerdown|list

参数2:Core name //远程处理器名称,一般是DSP

参数3:File path //可执行文件路径,当参数2为"startup/load/all"时必填

参数4:map-file //map文件,当远程处理器MMU功能开启时必填

 

运行命令格式如下图所示:

 

图 45

可以通过各个syslink示例目录下的run.sh脚本查看使用slaveloader运行示例程序的具体方法。下图是各个示例的功能简介:

 

图 46

备注:在单独运行各个示例程序前,务必先安装syslink驱动,安装命令:

Target# insmod /lib/modules/3.3.0/kernel/drivers/dsp/syslink.ko TRACE=1 TRACEFAILURE=1

ex01_helloworld

示例名字:helloworld

功能说明:GPP(ARM)端注册一个来自DSP端的简单一次性通知事件。

参考英文资料:

 

图 47

运行命令:

Target# cd demo-rootfs/ex01_helloworld/debug/

Target# ls

Target# ./run.sh

成功运行提示如下图:

 

图 48

omapl138fpga三核高速数据采集处理核心平台方案

支持32路AD采集,32路DA输出。支持多路RS485、RS232串口;支持实时系统,控制延时;支持DSP和ARM的多核通信,提供丰富的采样demo;支持图形界面编程,触控!1.OMAP-L138+FPGA开发板简介    深圳信迈... 查看详情

omapl138+fpgaad7606数据采集测试

测试开发板是信迈OMAPL138+FPGA多核异构开发板XM138F-IDK-V3。此程序实现了使用EMIFA 总线去读写AD7606AD 芯片。AD7606 是8 通道、16Bit、200K 采样率的AD 芯片,支持并口/串口读写方式,模块默认为并口模式,采用并口模... 查看详情

基于tidavinci架构的多核/双核开发高速扫盲(以omapl138为例),dm8168多核开发參考以及达芬奇系列资料userguide整理

基于TIDavinci架构的双核嵌入式应用处理器OMAPL138开发入门原文转自http://blog.csdn.net/wangpengqi/article/details/8115614感谢wangpengqi的共享。一、简单介绍TI的达芬奇架构嵌入式应用处理器使用DSP与ARM结合的非对称多核结构,当然如今也有管... 查看详情

基于omapl138+fpga48通道采集器的设计与实现

当今局势下,世界人口形势进一步加剧,由于陆地资源和环境的压力,海洋客观上已成为世界后备资源基地及某些主要战略资源的接替区。人类为了更加深入的探索海洋,在水声领域引入数字信号、图像处理技术制造出各种新型声呐... 查看详情

基于omapl138+fpga的多路pwm发生器设计及应用

为了满足一种新能源发电领域的电力电子变换装置上逆变器触发的要求,研制了利用OMAPL138和FPGA实现的多路PWM脉冲发生器。该脉冲发生器利用接口单元接收OMAPL138写入的PWM脉冲占空比和设置参数等数据,利用FPGA产生PWM波形,达到其工... 查看详情

基于omapl138+fpga船舶自动识别系统中频数据采集存储系统

船舶自动识别系统(AutomaticIdentificationSystem,AIS)是在海上用于船舶避碰和识别的数字助航系统,对于维护海上交通安全发挥了巨大的作用。AIS系统的位置信息由全球卫星导航系统(GlobalNavigationSateliteSystem,GNSS)提供... 查看详情

基于omapl138+fpga地震勘探无线数字遥爆系统设计

...,自主设计地震勘探遥爆子系统是势在必行的工作。本文基于企业横向项目,完成了数字遥爆子系统 查看详情

fpga案例开发手册——基于全志t3+logosfpga核心板

...法,适用的开发环境为Windows764bit和Windows1064bit。本文案例基于创龙科技的全志T3+LogosFPGA核心板,它是一款基于全志科技T3四核ARMCortex-A7处理器+紫光同创LogosPGL25G/PGL50GFPGA设计的异构多核全国产工业核心板,ARMCortex-A7处理单元主频... 查看详情

omapl138调试笔记(代码片段)

...20170617uart2作为调试串口bandrate115200串口调试终端采用ZOC3.开发板启动开官如下:SD卡挂载boot分区挂载在/ 查看详情

创龙基于c66x平台dsp与fpga通信测试

本文为基于创龙TL665xF-EasyEVM开发板的DSP与FPGA通信测试。TL665xF-EasyEV开发板的简介绍如下:由核心板+底板构成。核心板DSP端采用单核TMS320C6655或双核TMS320C6657处理器,FPGA端采用XilinxArtix-7处理器,实现异构多核处理器架构,DSP与FPGA... 查看详情

基于omap-l138dsp+arm处理器与fpga实现sdr软件无线电系统

...软件定义无线电(SDR)系统的灵活性优势。本文将探讨如何基于德州仪器的OMAP-L138 DSP+ARM处理器与FPGA来实现该系统。平台信迈选择其XM138F-IDK-V3嵌入式系统模块作为SD 查看详情

基于ompal138+fpga分布式光纤传感器系统设计

...布式光纤传感器软件系统。相对于传统的光纤传感系统,基于布里渊散射的分布式光纤传感器可监控被测环境的温度、应变信息,而基于嵌入式平台开发的传感系统则具有成本低、性能高、稳定性好等优点。 光纤传感系统采用C/S... 查看详情

嵌入式工程师进阶,基于am64x开发板的ipc多核开发案例分享

前言本文档主要说明AM64x基于IPC的多核开发方法。默认使用AM6442进行测试演示,AM6412测试步骤与之类似。适用开发环境如下:Windows开发环境:Windows764bit、Windows1064bit虚拟机:VMware15.5.5Linux开发环境:Ubuntu18.04.464bitLinuxProcessorSDK:ti... 查看详情

fpga学习-2:开发板及verilog介绍(代码片段)

...元价格仅100多,极具性价比可以在上面跑riscv开源架构cpu核心完全够用IDE我们使用官方的安路TD软件详细安装过程可去sipeed文档上查看与开发程序类似开发FPGA同样有编程语言比如verilog,VHDL这里使用verilog作为核心开发语言如果你... 查看详情

fpga教程案例65硬件开发板调试5——基于rs232的串口通信,由fpga发射数据到pc

FPGA教程目录MATLAB教程目录--------------------------------------------------------------------------------------------------------------------------------目录1.软件版本2.RS232串口概述FPGA中串口通信的时钟频率和波特率计数 查看详情

软件无线电核心板设计资料保存:基于tms320c6670的软件无线电核心板

一、板卡概述     北京太速科技自主研发的TMS320C6670核心板,采用TI KeyStone系列的四核定点/浮点DSP TMS320C6670作主处理器。板卡引出处理器的全部信号引脚,便于客户二次开发,降低了硬件的开发难度和时... 查看详情

fpga教程案例67硬件开发板调试7——基于hdmi接口的彩色显示器图像显示实验

FPGA教程目录MATLAB教程目录--------------------------------------------------------------------------------------------------------------------------------目录1.软件版本2.HDMI接口概述3.verilog程序编写 查看详情

icore3双核心板_fpga实验十九:基于双口ram的arm+fpga数据存取实验

实验指导书及代码包下载:http://pan.baidu.com/s/1slOm60diCore3购买链接:https://item.taobao.com/item.htm?id=524229438677 查看详情