介紹
多核數字信號處理器 (DSP) 現已開始在不同的細分市場逐漸推廣, 包括測量測試、關鍵任務、工業自動化、醫療與高端影像設備,以及高性能計算等。隨著這些應用的處理需求不斷增長,德州儀器 (TI) 通過了新一代可擴展高性能 TMS320C66x 多核 DSP。C66x 器件建立在 TI KeyStone 架構基礎之上,可為多核器件中的每個內核提供全面的處理功能,是實現真正多核創新的平臺。TI C66x 高性能 DSP 包括采用單、雙、四以及八內核配置提供的引腳兼容及可擴展器件。
德州儀器 (TI) 對多核 DSP 編程模型思路非常全面,已經開發出一系列能夠在 TI 多核 DSP 平臺上實現快速開發的可擴展工具與軟件。本文主要介紹 TI 多核軟件開發套件 (MCSDK),具體內容涵蓋對各種可用軟件套件以及實用程序及工具鏈的概述,可為編程人員開發 Linux 等高級操作系統以及實時操作系統SYS/BIOS 助一臂之力。
MCSDK 的優勢
TI MCSDK 旨在提供一個軟件開發環境,通過 TI 高性能多核 DSP 平臺實現快速開發,加速產品上市進程。MCSDK 實現這一目標的方法包括:
· 為客戶提供經測試的良好集成型通用軟件層,客戶無須從頭開發通用層。例如,TI MCSDK 為配置和控制各種片上外設及加速器集成并測試了各種驅動器。客戶可使用驅動器接口加強片上輸入輸出 (I/O) 機制以及加速功能。由于該軟件是專為器件優化的,因此使用 MCSDK 的客戶可從理想的性能優勢中獲益;
· 集成 SYS/BIOS 實時操作系統及 Linux 高級操作系統支持;
· 為簡化編程以及在 TI 可擴展多核 DSP 平臺上實現未來可移植性提供定義完善的應用編程接口。例如,用于內部核心通信的 API 可在不進行任何代碼修改的情況下,擴展支持 TI 多核 DSP 的雙、四或八內核版本。此外,相同 API 還可用于使用 Serial RapidIO? 等行業標準 IO 實現器件間的通信;
· 建立示例文檔,可幫助編程人員開發其應用。這些示例將為在多核上運行 RTOS 和在多核上同時運行 RTOS 與 HLOS 提供有力幫助。此外,這些示例還將展示各種應用情況,不但可幫助客戶開發新應用,而且還可提供一個從單內核系統到多核系統或從多核系統到單內核系統移植的路徑;
· 與 Code Composer StudioTM 等 TI 工具以及 TI 第三方工具生態系統集成。
下圖(圖 1)是上述 MCSDK 及各種組件的概覽圖。
▲圖 1. TI MCSDK 組件
TI MCSDK 實際上由兩個軟件生態系統構成。第一個生態系統基于 Linux,第二個基于 SYS/BIOS。兩個都包含可幫助客戶便捷啟動開發的所有功能性軟件。每個生態系統都包含用于多核器件編程的各種機制(比如處理器間通信),在相同器件的不同內核上既可獨立使用,也可組合使用。以下章節將總體介紹每個 MCSDK 組件。
Linux MCSDK
Linux 多核軟件開發套件 (MCSDK) 為支持運行在 TI C66x 系列高性能多核 DSP 上 的 Linux 生態系統奠定了堅實基礎。該套件包含可隨時投入使用的 Linux 內核、驅動器、樣片應用以及經驗證的工具,可充分滿足客戶的產品開發需求。Linux MCSDK 以開源發行版形式在 www.linux-c6x.org 上提供,包含預構建二進制程序,可隨時通過在參考平臺上運行來演示 TI 高性能多核 DSP 的功能。
總體而言,支持 C66x 多核 DSP 的 Linux 是 C66x 多核客戶、獨立開發者以及廠商協作社區推動的結果,可幫助參與和強化總體開發生態系統。目前已有多個參與方參與內核與工具鏈的開發和上游對接。具體包括 GCC 工具鏈的 CodeSourcery(現在是 Mentor EmbeddedTM 的一部分)以及內核社區知名的 Linux 開發商等。
生態系統組件
對 Linux 生態系統的支持預計將是各種更豐富高性能應用的關鍵使能技術,可幫助客戶輕松推出基于 TI C66x 多核 DSP 的平臺。總的來說,該基礎架構可通過增添市場導向型應用來幫助客戶降低開發成本,集中精力提升價值定位。
Linux MCSDK 采用 uClinux 類內核,因其較小的占位面積非常適合多核 DSP 的開發。另外,Linux MCSDK 還包含支持訪問 DSP 內部所有外設的器件驅動器,這些外設將隨實際 DSP 的不同而不同。圖 2 是支持 KeyStone 器件的外設與驅動器。
▲圖 2. Linux MCSDK 的軟件生態系統組件
進程間通信
多核架構的主要編程要求之一就是能夠在各種內核之間進行高效通信。TI Linux MCSDK 支持在運行 SYS/BIOS 的核心之間,以及其它 Linux 內核之間的通信,從而可為滿足各種潛在產品需求提供高度的靈活性。
內核間的 IPC
TI Linux MCSDK 通過 SYS/Link 模塊提供進程間通信 (IPC) 驅動器,以在運行 Linux 高級操作系統 (HLOS) 的兩個內核以及運行 SYS/BIOS 實時操作系統 (RTOS) 的多個內核之間實現通信。在預期的使用情況下,應在信號處理應用在 BIOS 內核上執行的同時控制運行在 Linux 內核上的代碼。該軟件架構將幫助運行 Linux 的主機內核把信號處理分配給多個內核的同時,順暢地繼續執行其它任務。SYS/Link IPC 模塊可為在多個內核中發送和接收不同字長消息提供 MessageQ 支持。
如圖 3 所示,Linux MCSDK 還能使用一種支持 IO 虛擬的標準化 Linux 框架 virtIO 在單一 DSP 內實現在多個內核中運行的多個 Linux 實例。
▲圖 3. 多個 Linux 實例情況下的 IPC 使用
軟件 開發工具
Linux MCSDK 可為用戶提供各種編譯器工具及調試選項。在編譯器方面, 開源社區普遍使用的 GCC 與二進制工具可通過 Mentor Embedded 提供給 C66x 多核 DSP。在信號處理代碼等應用實例中,開發人員能夠使用 TI 提供的編譯器獲得更高性能。另外,GCC 和 TI 編譯器還具有互操作性, 因此開發人員可選擇使用 TI 編譯器或 GCC 滿足不同部分的應用代碼需求,而系統的其余部分則仍然使用 GCC 構建。這樣用戶就可高度靈活地進行與代碼性能有關的利弊權衡。
在調試方面,用戶模式下的應用可使用 Mentor Embedded 提供的 GDB。對內核調試或者無操作系統的程序運行,使用 Mentor Embedded 提供的 Debug Sprite 和 TI 基于 CCS 的調試器,就可實現基于 JTAG 的調試。
TI C66x EVM 上的創造性演示體驗
Linux MCSDK 的最后一個組件是創造性 (OOB) 演示軟件與示例應用。OOB 演示應用包含 Web 界面,可為用戶提供通過以太網連接 PC 訪問 EVM 的控制面板,以便在啟動后提供各種功能。在初期版本中,控制面板可提供一種簡便的方法為用戶更新引導加載程序及內核。后續版本將支持可展示和演示多核相關功能的其它基本功能,比如運行 BIOS 和/或 Linux 的內核間 IPC 通信以及下載和引導多核應用等。
BIOS MCSDK
BIOS 多核軟件開發套件 (MCSDK) 以集成方式提供內核基本構建塊,可為在 TI 高性能多核 DSP 上使用 SYS/BIOS 實時操作系統進行應用軟件開發提供便利。BIOS MCSDK 在統一可下載套件中綁定全部主要嵌入式軟件,并在 TI 網站上免費提供。BIOS MCSDK 配套提供的軟件均為預構建庫源代碼,并按 BSD 許可證進行分銷。除了基礎軟件元素外,BIOS MCSDK 還提供使用這些組件的演示應用,可展示客戶使用 BIOS MCSDK 創建應用的方法。
BIOS MCSDK 采用這種結構進行設計的驅動因素之一,是為了簡化各平臺間的設計流程以及對客戶在各個 TI 器件之間進行移植的考慮。TI 了解客戶可能有采用通用軟件支持不同器件的多種產品,因此移植策略應重點考慮利用客戶在現有以及未來 TI 器件上的軟件投資。例如,該流程可從在 TI 評估平臺上運行內含 TI 演示軟件開始,然后將該演示移植至客戶平臺,最后在客戶平臺上導出客戶應用。另外一個步驟就是將該應用移植到新一代 TI 架構上(圖 4)。
▲圖 4. 將應用移植到 TI 新一代應用 SoC 平臺上
BIOS MCSDK 使用 TI Code Composer StudioTM(CCS) 作為集成開發環境 (IDE)。在軟件更新方面,BIOS MCSDK 使用 Eclipse 的更新特性通過 CCS 自動發現并安裝新軟件。
軟件概覽
BIOS MCSDK 中的軟件組件(圖 5)可分為下列類型:
?器件專用軟件驅動器
內核目標軟件
平臺專用軟件
演示與工具
▲圖 5. BIOS MCSDK 的軟件組件
器件專用軟件驅動器:該軟件套件包含芯片支持庫、低級驅動器、平臺庫以及傳輸協議。該套件中的軟件重在簡化對諸如加速器等器件硬件的訪問,并可作為應用開發的最低層 API。
平臺專用軟件:本軟件提供與 TI 參考平臺配套使用的平臺專用功能的實施示例,其目的是用作客戶平臺開發活動示例。
平臺庫可使用通用 API 對平臺進行抽象,簡化各器件間的移植。它提供軟件實用程序來控制硬件部件(比如 EEPROM、FLASH、UART)并完成平臺/器件初始化。
平臺庫 API 由跨不同平臺的通用工具使用。這些工具包括 EEPROM 寫入器、NAND/NOR 寫入器以及上電自檢等。因此,要為新器件或新平臺添加這些工具,應隔離工作,以便添加專門用于該硬件的平臺庫。與其它組件一樣,該平臺庫具有單元測試應用,可在將模塊移植到新平臺時使用。
內核目標內容:該軟件集提供更高級功能,包括實時嵌入式操作系統、跨內核以及跨器件通信的處理器間通信、基本網絡協議棧及協議、經優化的專用算法庫以及儀表工具等。
一項重要多核使能技術包含處理器間的通信,其不但可跨越使用共享存儲器的內核及器件實現高效通信(內核間通信),而且還可跨越 SRIO 與 PCIe 等外設實現器件間的通信。處理器間的通信機制和 API 支持精細線程多核編程模型。此外,通用 IPC 接口還可簡化跨內核和/或器件的應用處理節點工作, 滿足多核應用設計與優化的需求。
第二項重要使能技術是儀表工具,其對用戶掌控應用執行狀況具有至關重要的意義,可分析并優化性能。BIOS MCSDK 包含系統分析器工具,其可定義一系列 API,而 API 則能夠以可移植方法將儀器代碼插入軟件,以便在各種 TI 平臺中重復使用。某項應用的圖形化輸出示例如下(圖 6)
▲圖 6. BIOS MCSDK 的系統分析器工具
演示與工具:該軟件集覆蓋多種器件,提供構建于上述軟件的示例、演示以及工具。BIOS MCSDK 包含演示應用,旨在作為示例展示如何使用基礎軟件構建多核應用。當前版本中可供下載的演示包括用于展示 BIOS MCSDK 部分重要組件的創造性應用,以及用于顯示多核信號處理的影像處理應用。
各種工具包括通用引導加載程序、FLASH 及 EEPROM 寫入器、評估板上電自檢、多核/多影像引導工具,以及從不同模式(比如 NAND/NOR、EMAC、SRIO)引導的簡明示例等。
演示
創造性演示
BIOS MCSDK 的創造性演示是一種以 CCS 項目方式提供的高性能 DSP 實用程序應用 (HUA)。該演示可通過演示代碼及 Web 頁面向用戶演示如何將自己的 DSP 應用連接至各種不同的 BIOS MCSDK 軟件元素,其中包括 SYS/BIOS、網絡開發套件 (NDK)、芯片支持庫 (CSL) 以及平臺庫。
在執行時,HUA 可使用 Web 服務器讓用戶使用 PC 通過以太網連接至平臺。用戶使用 HUA 可執行各種功能,比如讀/寫閃存、診斷或者提供統計及信息。該演示可通過演示代碼及 Web 頁面向用戶演示如何將自己的 DSP 應用連接至各種不同的 BIOS MCSDK 軟件元素,其中包括 SYS/BIOS、網絡開發套件 (NDK)、芯片支持庫 (CSL) 以及平臺庫(圖 7)。
▲圖 7. 高性能 DSP 實用程序應用 (HUA)
影像處理演示(圖 8)則展示了如何在 BIOS MCSDK 多核信號處理過程中集成主要組件。其采用了處理器間通信功能、經優化的影像庫、網絡開發套件以及系統分析器。后者用于采集和分析基準信息。
▲圖 8. BIOS MCSDK 的影像處理應用軟件框架
本演示經配置可運行于器件所支持的任意數量的內核上。可將本演示劃分為第一個內核上的單個主系統任務和分配給所有內核的多個從系統任務。主系統任務負責對輸入數據進行分組,并將工作分配給從系統任務,然后自從系統任務采集結果,并發送輸出數據。當前支持的算法有邊緣檢測,但經擴展后可支持更多種算法。
總結
TI MCSDK 可為客戶提供一種適用于 Linux 和 SYS/BIOS 的高穩健集成型軟件開發環境,其目標是使用基于 KeyStone 架構的高性能 DSP 實現快速開發, 進而加速上市進程。
評論
查看更多