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

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

2012-11-01
作者:德州儀器(TI)
關(guān)鍵詞: 開發(fā)工具 多核 DSP MCSDK C66x Linux

Sanjay Bhal 戰(zhàn)略市場營銷經(jīng)理,多核與媒體基礎(chǔ)架構(gòu)業(yè)務(wù)部

Raj Sivarajan 軟件工程設(shè)計經(jīng)理,多核與媒體基礎(chǔ)架構(gòu)業(yè)務(wù)部

Raghu Nambiath 軟件設(shè)計工程師,多核與媒體基礎(chǔ)架構(gòu)業(yè)務(wù)部

介紹

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

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

MCSDK 的優(yōu)勢

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

    ·為客戶提供經(jīng)測試的良好集成型通用軟件層,客戶無須從頭開發(fā)通用層。例如,TI MCSDK 為配置和控制各種片上外設(shè)及加速器集成并測試了各種驅(qū)動器??蛻艨墒褂抿?qū)動器接口加強片上輸入輸出(I/O) 機制以及加速功能。由于該軟件是專為器件優(yōu)化的,因此使用MCSDK 的客戶可從理想的性能優(yōu)勢中獲益;

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

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

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

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

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

1. TI MCSDK 組件

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

Linux MCSDK

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

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

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

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

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

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

進程間通信

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

內(nèi)核間的IPC

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

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

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

軟件開發(fā)工具

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

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

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

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

BIOS MCSDK

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

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

4. 將應(yīng)用移植到TI 新一代應(yīng)用SoC 平臺上

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

軟件概覽

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

.器件專用軟件驅(qū)動器

.內(nèi)核目標(biāo)軟件

.平臺專用軟件

.演示與工具

5. BIOS MCSDK 的軟件組件

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

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

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

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

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

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

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

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

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

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

演示

創(chuàng)造性演示

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

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

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

 

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

8. BIOS MCSDK 的影像處理應(yīng)用軟件框架

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

總結(jié)

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

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

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