《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 解決方案 > 多核軟件開發(fā)套件

多核軟件開發(fā)套件

2012-11-01
作者:德州儀器(TI)

Sanjay Bhal 戰(zhàn)略市場營銷經理,多核與媒體基礎架構業(yè)務部

Raj Sivarajan 軟件工程設計經理,多核與媒體基礎架構業(yè)務部

Raghu Nambiath 軟件設計工程師,,多核與媒體基礎架構業(yè)務部

介紹

    多核數字信號處理器(DSP) 現已開始在不同的細分市場逐漸推廣,,包括測量測試、關鍵任務,、工業(yè)自動化,、醫(yī)療與高端影像設備,以及高性能計算等,。隨著這些應用的處理需求不斷增長,,德州儀器(TI) 通過了新一代可擴展高性能TMS320C66x 多核DSP。C66x 器件建立在TI KeyStone 架構基礎之上,,可為多核器件中的每個內核提供全面的處理功能,,是實現真正多核創(chuàng)新的平臺。TI C66x 高性能DSP 包括采用單,、雙,、四以及八內核配置提供的引腳兼容及可擴展器件。

    德州儀器(TI) 對多核DSP 編程模型思路非常全面,,已經開發(fā)出一系列能夠在TI 多核DSP 平臺上實現快速開發(fā)的可擴展工具與軟件,。本文主要介紹TI 多核軟件開發(fā)套件(MCSDK),具體內容涵蓋對各種可用軟件套件以及實用程序及工具鏈的概述,,可為編程人員開發(fā)Linux 等高級操作系統(tǒng)以及實時操作系統(tǒng)SYS/BIOS 助一臂之力,。

MCSDK 的優(yōu)勢

    TI MCSDK 旨在提供一個軟件開發(fā)環(huán)境,通過TI 高性能多核DSP 平臺實現快速開發(fā),,加速產品上市進程,。MCSDK 實現這一目標的方法包括:

    ·為客戶提供經測試的良好集成型通用軟件層,客戶無須從頭開發(fā)通用層,。例如,,TI MCSDK 為配置和控制各種片上外設及加速器集成并測試了各種驅動器??蛻艨墒褂抿寗悠鹘涌诩訌娖陷斎胼敵?I/O) 機制以及加速功能,。由于該軟件是專為器件優(yōu)化的,因此使用MCSDK 的客戶可從理想的性能優(yōu)勢中獲益,;

   ·集成SYS/BIOS 實時操作系統(tǒng)及Linux 高級操作系統(tǒng)支持,;

   ·為簡化編程以及在TI 可擴展多核DSP 平臺上實現未來可移植性提供定義完善的應用編程接口,。例如,用于內部核心通信的API 可在不進行任何代碼修改的情況下,,擴展支持TI 多核DSP 的雙,、四或八內核版本。此外,,相同API 還可用于使用Serial RapidIO® 等行業(yè)標準IO 實現器件間的通信,;

    ·建立示例文檔,可幫助編程人員開發(fā)其應用,。這些示例將為在多核上運行RTOS 和在多核上同時運行RTOS 與HLOS 提供有力幫助,。此外,這些示例還將展示各種應用情況,,不但可幫助客戶開發(fā)新應用,,而且還可提供一個從單內核系統(tǒng)到多核系統(tǒng)或從多核系統(tǒng)到單內核系統(tǒng)移植的路徑;

    ·與Code Composer StudioTM 等TI 工具以及TI 第三方工具生態(tài)系統(tǒng)集成,。

下圖(圖1)是上述MCSDK 及各種組件的概覽圖,。

1. TI MCSDK 組件

    TI MCSDK 實際上由兩個軟件生態(tài)系統(tǒng)構成。第一個生態(tài)系統(tǒng)基于Linux,,第二個基于SYS/BIOS,。兩個都包含可幫助客戶便捷啟動開發(fā)的所有功能性軟件。每個生態(tài)系統(tǒng)都包含用于多核器件編程的各種機制(比如處理器間通信),,在相同器件的不同內核上既可獨立使用,,也可組合使用。以下章節(jié)將總體介紹每個MCSDK 組件,。

Linux MCSDK

    Linux 多核軟件開發(fā)套件(MCSDK) 為支持運行在TI C66x 系列高性能多核DSP 上的Linux 生態(tài)系統(tǒng)奠定了堅實基礎,。該套件包含可隨時投入使用的Linux 內核、驅動器,、樣片應用以及經驗證的工具,,可充分滿足客戶的產品開發(fā)需求。Linux MCSDK 以開源發(fā)行版形式在www.linux-c6x.org上提供,,包含預構建二進制程序,,可隨時通過在參考平臺上運行來演示TI 高性能多核DSP 的功能。

    總體而言,,支持C66x 多核DSP 的Linux 是C66x 多核客戶,、獨立開發(fā)者以及廠商協(xié)作社區(qū)推動的結果,可幫助參與和強化總體開發(fā)生態(tài)系統(tǒng),。目前已有多個參與方參與內核與工具鏈的開發(fā)和上游對接。具體包括GCC 工具鏈的CodeSourcery(現在是Mentor EmbeddedTM 的一部分)以及內核社區(qū)知名的Linux 開發(fā)商等,。

生態(tài)系統(tǒng)組件

    對Linux 生態(tài)系統(tǒng)的支持預計將是各種更豐富高性能應用的關鍵使能技術,,可幫助客戶輕松推出基于TI C66x 多核DSP 的平臺,。總的來說,,該基礎架構可通過增添市場導向型應用來幫助客戶降低開發(fā)成本,,集中精力提升價值定位。

    Linux MCSDK 采用uClinux 類內核,,因其較小的占位面積非常適合多核DSP 的開發(fā),。另外,Linux MCSDK 還包含支持訪問DSP 內部所有外設的器件驅動器,,這些外設將隨實際DSP 的不同而不同,。圖2 是支持KeyStone 器件的外設與驅動器。

2. Linux MCSDK 的軟件生態(tài)系統(tǒng)組件

進程間通信

   多核架構的主要編程要求之一就是能夠在各種內核之間進行高效通信,。TI Linux MCSDK 支持在運行SYS/BIOS 的核心之間,,以及其它Linux 內核之間的通信,從而可為滿足各種潛在產品需求提供高度的靈活性,。

內核間的IPC

    TI Linux MCSDK 通過SYS/Link 模塊提供進程間通信(IPC) 驅動器,,以在運行Linux 高級操作系統(tǒng)(HLOS) 的兩個內核以及運行SYS/BIOS 實時操作系統(tǒng)(RTOS) 的多個內核之間實現通信。在預期的使用情況下,,應在信號處理應用在BIOS 內核上執(zhí)行的同時控制運行在Linux 內核上的代碼,。該軟件架構將幫助運行Linux 的主機內核把信號處理分配給多個內核的同時,順暢地繼續(xù)執(zhí)行其它任務,。SYS/Link IPC 模塊可為在多個內核中發(fā)送和接收不同字長消息提供MessageQ 支持,。

    如圖3 所示,Linux MCSDK 還能使用一種支持IO 虛擬的標準化Linux 框架virtIO 在單一DSP 內實現在多個內核中運行的多個Linux 實例,。

3. 多個Linux 實例情況下的IPC 使用

軟件開發(fā)工具

    Linux MCSDK 可為用戶提供各種編譯器工具及調試選項,。在編譯器方面,開源社區(qū)普遍使用的GCC 與二進制工具可通過Mentor Embedded 提供給C66x 多核DSP,。在信號處理代碼等應用實例中,,開發(fā)人員能夠使用TI 提供的編譯器獲得更高性能。另外,,GCC 和TI 編譯器還具有互操作性,,因此開發(fā)人員可選擇使用TI 編譯器或GCC 滿足不同部分的應用代碼需求,而系統(tǒng)的其余部分則仍然使用GCC 構建,。這樣用戶就可高度靈活地進行與代碼性能有關的利弊權衡,。

    在調試方面,用戶模式下的應用可使用Mentor Embedded 提供的GDB,。對內核調試或者無操作系統(tǒng)的程序運行,,使用Mentor Embedded 提供的Debug Sprite 和TI 基于CCS 的調試器,就可實現基于JTAG 的調試,。

TI C66x EVM 上的創(chuàng)造性演示體驗

     Linux MCSDK 的最后一個組件是創(chuàng)造性(OOB) 演示軟件與示例應用,。OOB 演示應用包含Web 界面,,可為用戶提供通過以太網連接PC 訪問EVM 的控制面板,以便在啟動后提供各種功能,。在初期版本中,,控制面板可提供一種簡便的方法為用戶更新引導加載程序及內核。后續(xù)版本將支持可展示和演示多核相關功能的其它基本功能,,比如運行BIOS 和/或Linux 的內核間IPC 通信以及下載和引導多核應用等,。

BIOS MCSDK

    BIOS 多核軟件開發(fā)套件(MCSDK) 以集成方式提供內核基本構建塊,可為在TI 高性能多核DSP 上使用SYS/BIOS 實時操作系統(tǒng)進行應用軟件開發(fā)提供便利,。BIOS MCSDK 在統(tǒng)一可下載套件中綁定全部主要嵌入式軟件,,并在TI 網站上免費提供。BIOS MCSDK 配套提供的軟件均為預構建庫源代碼,,并按BSD 許可證進行分銷,。除了基礎軟件元素外,BIOS MCSDK 還提供使用這些組件的演示應用,,可展示客戶使用BIOS MCSDK 創(chuàng)建應用的方法,。

    BIOS MCSDK 采用這種結構進行設計的驅動因素之一,是為了簡化各平臺間的設計流程以及對客戶在各個TI 器件之間進行移植的考慮,。TI 了解客戶可能有采用通用軟件支持不同器件的多種產品,,因此移植策略應重點考慮利用客戶在現有以及未來TI 器件上的軟件投資。例如,,該流程可從在TI 評估平臺上運行內含TI 演示軟件開始,,然后將該演示移植至客戶平臺,最后在客戶平臺上導出客戶應用,。另外一個步驟就是將該應用移植到新一代TI 架構上(圖4),。

4. 將應用移植到TI 新一代應用SoC 平臺上

    BIOS MCSDK 使用TI Code Composer StudioTM(CCS) 作為集成開發(fā)環(huán)境(IDE)。在軟件更新方面,,BIOS MCSDK 使用Eclipse 的更新特性通過CCS 自動發(fā)現并安裝新軟件,。

軟件概覽

BIOS MCSDK 中的軟件組件(圖5)可分為下列類型:

.器件專用軟件驅動器

.內核目標軟件

.平臺專用軟件

.演示與工具

5. BIOS MCSDK 的軟件組件

    器件專用軟件驅動器:該軟件套件包含芯片支持庫、低級驅動器,、平臺庫以及傳輸協(xié)議,。該套件中的軟件重在簡化對諸如加速器等器件硬件的訪問,并可作為應用開發(fā)的最低層API,。

    平臺專用軟件:本軟件提供與TI 參考平臺配套使用的平臺專用功能的實施示例,,其目的是用作客戶平臺開發(fā)活動示例。

    平臺庫可使用通用API 對平臺進行抽象,,簡化各器件間的移植,。它提供軟件實用程序來控制硬件部件(比如EEPROM、FLASH、UART)并完成平臺/器件初始化,。

    平臺庫API 由跨不同平臺的通用工具使用,。這些工具包括EEPROM 寫入器、NAND/NOR 寫入器以及上電自檢等,。因此,要為新器件或新平臺添加這些工具,,應隔離工作,,以便添加專門用于該硬件的平臺庫。與其它組件一樣,,該平臺庫具有單元測試應用,,可在將模塊移植到新平臺時使用。

    內核目標內容:該軟件集提供更高級功能,,包括實時嵌入式操作系統(tǒng),、跨內核以及跨器件通信的處理器間通信、基本網絡協(xié)議棧及協(xié)議,、經優(yōu)化的專用算法庫以及儀表工具等,。

    一項重要多核使能技術包含處理器間的通信,其不但可跨越使用共享存儲器的內核及器件實現高效通信(內核間通信),,而且還可跨越SRIO 與PCIe 等外設實現器件間的通信,。處理器間的通信機制和API 支持精細線程多核編程模型。此外,,通用IPC 接口還可簡化跨內核和/或器件的應用處理節(jié)點工作,,滿足多核應用設計與優(yōu)化的需求。

    第二項重要使能技術是儀表工具,,其對用戶掌控應用執(zhí)行狀況具有至關重要的意義,,可分析并優(yōu)化性能。BIOS MCSDK 包含系統(tǒng)分析器工具,,其可定義一系列API,,而API 則能夠以可移植方法將儀器代碼插入軟件,以便在各種TI 平臺中重復使用,。某項應用的圖形化輸出示例如下(圖6)

6. BIOS MCSDK 的系統(tǒng)分析器工具

   演示與工具:該軟件集覆蓋多種器件,,提供構建于上述軟件的示例、演示以及工具,。BIOS MCSDK 包含演示應用,,旨在作為示例展示如何使用基礎軟件構建多核應用。當前版本中可供下載的演示包括用于展示BIOS MCSDK 部分重要組件的創(chuàng)造性應用,,以及用于顯示多核信號處理的影像處理應用,。

    各種工具包括通用引導加載程序、FLASH 及EEPROM 寫入器、評估板上電自檢,、多核/多影像引導工具,,以及從不同模式(比如NAND/NOR、EMAC,、SRIO)引導的簡明示例等,。

演示

創(chuàng)造性演示

     BIOS MCSDK 的創(chuàng)造性演示是一種以CCS 項目方式提供的高性能DSP 實用程序應用(HUA)。該演示可通過演示代碼及Web 頁面向用戶演示如何將自己的DSP 應用連接至各種不同的BIOS MCSDK 軟件元素,,其中包括SYS/BIOS,、網絡開發(fā)套件(NDK)、芯片支持庫(CSL) 以及平臺庫,。

在執(zhí)行時,,HUA 可使用Web 服務器讓用戶使用PC 通過以太網連接至平臺。用戶使用HUA 可執(zhí)行各種功能,,比如讀/寫閃存,、診斷或者提供統(tǒng)計及信息。該演示可通過演示代碼及Web 頁面向用戶演示如何將自己的DSP 應用連接至各種不同的BIOS MCSDK 軟件元素,,其中包括SYS/BIOS,、網絡開發(fā)套件(NDK)、芯片支持庫(CSL) 以及平臺庫(圖7),。

7. 高性能DSP 實用程序應用(HUA)

 

    影像處理演示(圖8)則展示了如何在BIOS MCSDK 多核信號處理過程中集成主要組件,。其采用了處理器間通信功能、經優(yōu)化的影像庫,、網絡開發(fā)套件以及系統(tǒng)分析器,。后者用于采集和分析基準信息。

8. BIOS MCSDK 的影像處理應用軟件框架

    本演示經配置可運行于器件所支持的任意數量的內核上,??蓪⒈狙菔緞澐譃榈谝粋€內核上的單個主系統(tǒng)任務和分配給所有內核的多個從系統(tǒng)任務。主系統(tǒng)任務負責對輸入數據進行分組,,并將工作分配給從系統(tǒng)任務,,然后自從系統(tǒng)任務采集結果,并發(fā)送輸出數據,。當前支持的算法有邊緣檢測,,但經擴展后可支持更多種算法。

總結

   TI MCSDK 可為客戶提供一種適用于Linux 和SYS/BIOS 的高穩(wěn)健集成型軟件開發(fā)環(huán)境,,其目標是使用基于KeyStone 架構的高性能DSP 實現快速開發(fā),,進而加速上市進程。

   如欲了解有關MCSDK 的更多詳情,,敬請訪問www.ti.com/mcsdk,;也可訪問www.ti.com/c66multicore,,查看有關KeyStone 架構以及C66x 系列高性能多核DSP 的詳細介紹。

本站內容除特別聲明的原創(chuàng)文章之外,,轉載內容只為傳遞更多信息,,并不代表本網站贊同其觀點。轉載的所有的文章,、圖片,、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者,。如涉及作品內容,、版權和其它問題,請及時通過電子郵件或電話通知我們,,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]