如何用TI DSP TMS320C6678處理器進行TI-IPC多核通信案例

如何用TMS320C6678處理器進行TI-IPC多核通信案例

本文基於創龍科技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) 串口、網絡遠程升級開發案例

案例源碼、產品資料(用戶手冊、核心板硬件資料、產品規格書)可點site.tronlong.com/pfdownload獲取。

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評估板進行快速評估,免費哦!

tronlong.com/Product/show/9.html

TMS320C6678 DSP討論:79635273、332643352

更多推薦

C6678+K7視頻採集處理方案

 

圖13

FPGA+DSP的高速AD採集處理開發詳解

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章