pg直营网-pg网赌游戏 >关于创龙 > 新闻资讯 > 技术文章

    联系pg直营网

    contact us

    公司总机:020-8998-6280

    技术热线:020-3893-9437

    技术邮箱:support@tronlong.com

    销售邮箱:sales@tronlong.com

    如何用tms320c6678处理器进行ti-ipc多核通信案例

    2021/01/25

    如何用tms320c6678处理器进行ti-pg直营网


    本文基于创龙科技tl6678-easyevm评估板进行演示。



    图1tl6678-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) 串口、网络远程升级开发案例

    案例源码、产品资料(用户手册、核心板硬件资料、产品规格书)可点获取。


    1.1 ti-ipc简介

    ti-ipc(inter-processor communication)是组件提供与处理器硬件无关的api,可用于多核处理器核间通信、同一处理器进程间通信和设备间通信。api支持消息传递、流和链接列表,它们在单处理器和多处理器中配置均可兼容。

    ti-ipc被设计在运行sys/bios应用程序的处理器上使用,一般为dsp处理器(如tms320c6678、tms320c6657),但在某些情况下亦可能是arm处理器。




    图2

    ipc常见的通信模块如下:


    表1

    ipc

    提供ipc_start()函数,并允许配置启动顺序

    messageq

    大小可变的消息传递模块

    notify

    以中断方式实现轻量数据传输的模块

    listmp

    用于实现对链接列表的互斥访问

    gatemp

    用于实现对共享资源的互斥访问

    heapbufmp

    大小固定的共享内存堆

    heapmenmp

    大小可变的共享内存堆

    sharedregion

    用于维护共享内存区域

    list

    用于创建双向链接列表

    multiproc

    用于管理多核处理器核心id

    nameserver

    用于应用程序基于本地名称检索,以及存储变量值




    图3


    1.2 常用模块

    1.2.1 messageq

    该模块具有如下特点:

    (1) 兼容性强,可在不更改运行代码的情况移植至另一个支持ti-ipc messageq的处理器或其他传输层(如shared memory、multicore navigator、srio)。

    (2) 支持可变长度消息的结构化发送与接收。

    (3) 单个messageq队列支持单个reader和多个writer。

    (4) 消息接收支持超时机制。

    (5) reader可根据消息头部信息对writer进行确认后再回复。

    (6) ipc_start()会帮助用户完成下图中灰色框内的功能,用户仅需关注红色框中的内容即可。




    图4



    messageq通过消息队列发送和接收消息。reader是一个从消息队列中读取消息的线程,writer是一个将消息写入消息队列的线程。每个消息队列都有一个reader,但可有多个writer。

    n reader:调用messageq_create()、messageq_get()、messageq_free()和messageq_delete()。

    n writer:调用messageq_open()、messageq_alloc()、messageq_put()和messageq_close()。

    messageq常见的工作流程如下所示。




    图5


    下面以多核ipc通信的shmipcbenchmark案例为例,分析代码中messageq的使用,见图中注释。




    图6




    图7


    1.2.2 notify

    该模块具有如下特点:

    (1) 可独立于messageq模块进行使用。

    (2) 着重于多核通知功能,是更为简单的多核通信形式。




    图8


    (3) 仅可基于shared memroy方式进行使用。




    图9


    notify通过硬件中断传输消息,receiver注册notify事件中断,sender通过notify发送事件中断,从而实现通知并携带小量消息的目的。

    n receiver:调用notify_registerevent()注册事件中断服务函数。

    n sender:调用notify_sendevent()发送事件中断。

    notify常见的工作流程如下所示。




    图10


    1.3 物理传输方式

    ti-ipc的数据传输需结合特定物理硬件与底层驱动,方可实现两个线程在同一个设备或跨设备间进行通信。常用三种的物理传输方式包括shared memory、multicore navigator和srio,具体说明如下。


    表2

    传输方式

    优点

    缺点

    shared memory

    使用简单,速率较高

    仅可用于单个设备ipc通信,可能与其他使用shared memory的任务存在竞争

    multicore navigator

    速率最高,消耗cpu周期最少

    仅可用于单个设备ipc通信

    srio

    可用于跨设备ipc通信

    速率最低


    下图为使用multicore navigator、srio的api调用流程,用户仅需关注messageq部分操作即可,其他模块均由系统自动调用。




    图11




    图12


    现可向厂家免费申请tl6678-easyevm评估板进行快速评估,免费哦!


    www.tronlong.com/product/show/9.html


    tms320c6678 dsp讨论组:79635273、332643352


    c6678 k7视频采集处理方案




    图13


    fpga dsp的高速ad采集处理开发详解



    图14



    联系创龙

    公司总机:020-8998-6280

    技术热线:020-3893-9734

    技术邮箱:support@tronlong.com

    销售邮箱:sales@tronlong.com



    创龙官方微信公众号

    pg直营网 copyright © 2013~2021 广州创龙电子科技有限公司 all rights reserved  |

    pg直营网的技术支持
    网站地图