您好,登錄后才能下訂單哦!
如何用TI DSP 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獲取。
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 | 用于應用程序基于本地名稱檢索,以及存儲變量值 |
圖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常見的工作流程如下所示。
圖6
圖8
(3) 僅可基于Shared Memroy方式進行使用。
圖10
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
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。