【经验分享】TMS320C6678处理器如何进行OpenMP多核通信案例

如何用TMS320C6678处理器进行OpenMP多核通信案例

 

本文主要介绍TMS320C6678处理器开发中比较常用的多核通信方式:OpenMP,主要基于创龙科技TL6678-EasyEVM评估板进行演示。

 

图1 TL6678-EasyEVM评估板

 

TL6678-EasyEVM是一款基于TI KeyStone架构C6000系列TMS320C6678八核C66x定点/浮点高性能处理器设计的高端多核DSP评估板,由核心板与底板组成。核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。

评估板接口资源丰富,引出双路千兆网口、SRIO、PCIe等高速通信接口,方便用户快速进行产品方案评估与技术预研。

 

开发案例主要包括:Ø

(1) 裸机开发案例

(2) RTOS(SYS/BIOS)开发案例

(3) IPC、OpenMP多核开发案例

(4) SRIO、PCIe、双千兆网口开发案例

(5) 图像处理开发案例

(6) DSP算法开发案例

(7) 串口、网络远程升级开发案例

案例源码、产品资料(用户手册、核心板硬件资料、产品规格书)可点http://site.tronlong.com/pfdownload获取。

 

2.1 OpenMP简介

OpenMP是一种多核开发软件框架,其主要特性如下:

(1) 可跨平台使用,代码兼容性强。

(2) 以共享内存为通信基础。

(3) 支持C/C++以及Fortran语言。

(4) 一般基于SYS/BIOS运行。

图2

2.2 基本语法

 

#pragma omp 指令 [子句 [ [ [,]子句 ] ... ]

{

...

}

 

表1

指令

说明

parallel

开始并行执行语句

for

在多个线程中并行执行for循环

sections

包含多个可并行执行的sectone结构体

single

单线程执行

master

主线程执行

critical

任意时刻仅可被单个线程执行

barrier

指定屏障,用于同步所有线程

taskwait

等待子线程完成

atomic

确保指定内存位置执行原子更新操作

flush

使线程当前内存数据与实际内存数据一致

ordered

并行执行的for循环将按循环体变量顺序执行

threadprivate

指定变量为本地存储

表2

子句

说明

default

控制parallel或task结构体中变量数据的共享属性

shared

parallel或task结构中,一个或多个变量为共享变量

private

一个或多个变量为本地变量

firstprivate

一个或多个变量为本地变量,且变量值为并行结构执行前的值

lastprivate

一个或多个变量为本地变量,且变量值为并行结构执行后的值

reduction

一个或多个变量为本地变量,但变量值将根据不同的运算符来决定,执行完成后变量值将被更新

copyin

使线程本地变量值与主线程变量值相同

copyprivate

使属于parallel区域的变量值在不同线程中相同

schedule

设置for循环并行执行方式:dynamic、guided、runtime和static

num_threads

线程数目

if

并行语句执行条件

nowait

忽略线程同步等待

以裸机的omp_matavec案例为例,使用场景的概要流程图如下。

C66xx_0核心创建主线程,通过OpenMP框架加载matvec算法至C66xx_0~C66xx_7核心进行并行运算,从而减少C66xx_0核心负载,并可加快运算速度。

图3

2.3 代码分析

以裸机的omp_matavec案例为例进行代码分析,见图中注释。

 

 

 

图4

 

免费试用

现可向厂家免费申请TL6678-EasyEVM评估板进行快速评估,免费哦!技术研讨会:79635273、332643352

 

更多推荐

C6678+K7视频采集处理方案

图5

FPGA+DSP的高速AD采集处理开发详解

图6

更多案例详情或建议,欢迎留言与我沟通了解。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
冃录 11录 ...............................................................3 C6678多运行Dem o详解.......................................... 7 1 ・ intc_b「oadcast_ 1 ...................................................................................................... 7 I」功能描述........................................................7 1.2变最定义及使用空间分配.........................................7 1.3实现流程........................................................7 1.4注意事项........................................................9 2. D D R 3......................................................................................................................10 2 .1 功能描述....................................................... 10 2.2变量定义及使用空间分配........................................ 10 2.3实现流程....................................................... 10 2.4注意事项....................................................... 11 3. ipc一 navigator.......................................................................................................... 12 3」功能描述....................................................... 12 3.2变最定义及使用空间分配........................................ 12 V 3 .3 实现流程....................................................... 12 3.4注意事项....................................................... 14 4. emif_nandflash....................................................................................................... 14 4 J 功能描述....................................................... 14 4.2变量定义及使用空间分配........................................ 14 4 .3 实现流程....................................................... 14 4.4注意事项....................................................... 15 5. emif_norflash......................................................................................................... 16 5」功能描述....................................................... 16 5.2变最定义及使用空间分配........................................ 16 5.3实现流程....................................................... 16 5.4注意事项....................................................... 17 6. hyperlink................................................................................................................ 17 6」功能描述....................................................17 6.2变量定义及使用空间分配......................................17 6 .3 实现流程....................................................17 6.4注意事项.................................................... 18 7. i2c_eeprom............................................................................................................. 19 7」功能描述.....................................................19 7.2变最定义及使用空间分配......................................19 7.3实现流程.................................................... 19 7.4注意事项....................................................20 8. i2c_srioswitch........................................................................................................20 & 1功能描述....................................................20 8.2变量定义及使用空间分配......................................20 8.3实现流税.........:............................. =21 8.4注意事项....................................................21 9. sem 2....................................................................................................................... 21 9」功能描述.................................................... 21 9.2变虽定义及使用空间分配......................................22 9.3实现流程....................................................22 9.4注意事项....................................................23 1(). srio...........................................................................................................................24 10」功能描述...................................................24 10.2变暈定义及使用空间分配.....................................24 10.3实现流程...................................................24 10.4注意事项...................................................27 11. tim er....................................................................................................................... 28 11」功能描述...................................................28 11.2变最定义及使用空间分配.....................................28 11.3实现流程...................................................2911.4注意爭项......................................................30 12. SPI_FPGA.............................................................................................................. 30 12」功能描述......................................................30 12.2变量定义及使用空间分配.......................................30 12.3实现流程......................................................30 12.4注意爭项......................................................31 13. SPI_nortlash...........................................................................................................31 13」功能描述......................................................31 13.2变量定义及使用空间分配.......................................31 13.3实现流程......................................................31 13.4注意爭项......................................
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tronlong创龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值