<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 新品快遞 > AMP 為您的下一個(gè) SoC 項目助力

AMP 為您的下一個(gè) SoC 項目助力

作者: 時(shí)間:2016-08-03 來(lái)源:電子產(chǎn)品世界 收藏

  嵌入式系統一般分為兩大類(lèi):需要硬實(shí)時(shí)性能的;和不需要硬實(shí)時(shí)性能的。過(guò)去,我們不得不做出艱 抉擇,即選擇實(shí)時(shí)操作系統的性能還是我們鐘愛(ài)的 Linux 系統的豐富特性,然后努力彌補不足之處。

本文引用地址:http://dyxdggzs.com/article/201608/294970.htm

  如今,嵌入式開(kāi)發(fā)人員再也不需要在二者之間艱難選擇。非對稱(chēng)多處理 () 兼備二者的優(yōu)點(diǎn)。幾款新型片上系統 (SoC) 產(chǎn)品集成了多個(gè) CPU、多種標準 I/O 外設和可編程邏輯。例如,賽靈思 Zynq-7000® All Programmable 系列包含一個(gè)雙核 ARM® Cortex™-A9、標準外設(例如千兆位以太網(wǎng) MAC、USB、DMA、SD/MMC、SPI 和 CAN)以及龐大的可編程邏輯陣列。我們可將這些 產(chǎn)品作為 Linux/RTOS 系統的基礎,助其實(shí)現高度的靈活性。

  典型的 配置在很多方面類(lèi)似于基于 PCI 的系統,即 Linux 域起到主機作用,RTOS 域起到適配器作用,并有一個(gè)或多個(gè)共享存儲器域用來(lái)實(shí)現兩個(gè)域之間的通信。不過(guò)與 PCI 不同,AMP 配置能更方便、動(dòng)態(tài)地為一個(gè)或另一個(gè)域分配資源(標準外設和自定義邏輯)。此外,Linux/RTOS AMP 系統能根據運行時(shí)間要求——例如各種外部設備的有無(wú)——動(dòng)態(tài)地重新配置可編程邏輯。

  靈活程度通常會(huì )與建立 AMP 系統所涉及的復雜性和難度息息相關(guān)。不過(guò)請放心,Linux 開(kāi)發(fā)社區已經(jīng)將很多功能引入到核心,能大大簡(jiǎn)化 AMP 配置與使用。

  LINUX 多處理簡(jiǎn)介

  就多處理而言,Linux 核心分為兩種:?jiǎn)翁幚砥?(UP) 核心和對稱(chēng)多處理器 (SMP) 核心。無(wú)論有多少個(gè)內核,UP 核心只能在單個(gè)內核上運行。AMP 系統可包含兩個(gè)或更多個(gè)單處理器內核的實(shí)例。

  SMP 核心可在一個(gè)內核或同時(shí)在多個(gè)內核上運行(圖 1)??蛇x的核心命令行參數控制系統初始化之后 SMP 核心所使用的內核數量。核心運行時(shí),各種命令行實(shí)用程序會(huì )控制分配給核心的內核數量。能夠動(dòng)態(tài)地控制內核所使用的內核數量,這是 SMP 核心比 UP 核心更受 AMP 開(kāi)發(fā)人員青睞的主要原因。

  

 

  圖 1 — 對稱(chēng)多處理。SMP 核心可在多個(gè)內核上同時(shí)運行。

  遠程處理器 (remoteproc) 框架是一種 Linux 組件,負責啟動(dòng)和停止各個(gè)內核(遠程處理器),以及在 AMP 系統中加載內核的軟件。例如,我們可以將圖 1 所示的 SMP 系統動(dòng)態(tài)地重新配置為圖 2 所示的 AMP 系統,然后再使用 remoteproc 的功能配置回 SMP。

  我們可以通過(guò)用戶(hù)空間應用程序或系統初始化腳本完全控制重配置。重配置控制功能使用戶(hù)應用可以根據系統的動(dòng)態(tài)需求停止、重新加載和運行多種 RTOS 應用程序。

  

 

  圖 2 — 具有 Linux SMP 核心的 AMP

  內核的軟件(本例中是指 RTOS 和用戶(hù)應用程序)從標準的可執行和可鏈接格式 (ELF) 文件中加載,該文件包含一個(gè)資源表的特殊段。資源表類(lèi)似于 PCI 配置空間,用來(lái)描述 RTOS 需要的資源。這些資源中包括 RTOS 代碼和數據所需的存儲器。

  追蹤緩沖區

  追蹤緩沖區是自動(dòng)在 Linux 文件系統中作為文件出現的存儲器區域。顧名思義,追蹤緩沖區向遠程處理器提供基本追蹤功能。遠程處理器向緩沖區寫(xiě)入追蹤、調試和狀態(tài)消息,以便通過(guò) Linux 命令行或定制應用進(jìn)行檢查。

  能夠動(dòng)態(tài)地控制核心所使用的內核數量,這是 SMP 核心比 UP 核心更受 AMP 開(kāi)發(fā)人員青睞的主要原因。

  在資源表中輸入條目,以請求一個(gè)或多個(gè)追蹤緩沖區。盡管一般包含純文本,但追蹤緩沖區也會(huì )包含二進(jìn)制數據,例如應用狀態(tài)信息或警報指示。

  虛擬 I/O 設備

  我們還可使用資源表定義虛擬輸入/輸出設備 (VDEV),這種設備主要是支持 Linux 核心與遠程處理器之間消息傳送的幾對共享存儲器隊列。VDEV 定義包括用來(lái)設定隊列大小的字段,以及用來(lái)在處理器之間發(fā)信號的中斷。

  Linux 核心可處理虛擬 I/O 隊列的初始化。遠程處理器上運行的軟件只需要在其資源表中包含一個(gè) VDEV 描述,然后在開(kāi)始執行時(shí)使用隊列;剩下的都由核心來(lái)處理。

  遠程處理器消息框架

  遠程處理器消息 (rpmsg) 框架是基于 Linux 核心的虛擬 I/O 系統的軟件消息總線(xiàn)。該消息總線(xiàn)類(lèi)似于局部區域子網(wǎng)絡(luò ),單個(gè)處理器可在其中通過(guò)共享存儲器創(chuàng )建可尋址端點(diǎn)和交換信息。

  核心的 rpmsg 框架起到開(kāi)關(guān)的作用,根據消息中包含的目的地址將消息傳送到相應端點(diǎn)。由于消息報頭包含源地址,因此可在不同處理器之間建立專(zhuān)用連接。

  命名服務(wù)

  處理器可通過(guò)向 rpmsg 框架的命名服務(wù)發(fā)送消息,以動(dòng)態(tài)宣布特定服務(wù)。命名服務(wù)功能本身用途不是很大。不過(guò),rpmsg 框架允許將服務(wù)名稱(chēng)關(guān)聯(lián)到設備驅動(dòng)程序,以支持驅動(dòng)程序的自動(dòng)加載和初始化。

  例如,如果遠程處理器宣布 dlinx-h323-v1.0 服務(wù),那么核心可以搜索、加載和初始化與該名稱(chēng)關(guān)聯(lián)的驅動(dòng)程序。如果系統中服務(wù)被動(dòng)態(tài)安裝在遠程處理器上,那么這樣可大大簡(jiǎn)化驅動(dòng)程序管理。

  管理中斷

  中斷管理有些棘手,尤其在啟動(dòng)和停止內核時(shí)更是如此。最終,系統需要在遠程處理器啟動(dòng)時(shí)動(dòng)態(tài)地將特定中斷重定向至遠程處理器域,然后當遠程處理器停止時(shí)收回中斷。此外,系統必須保護中斷,防止其被錯誤配置的驅動(dòng)程序誤分配。簡(jiǎn)言之,必須在系統層面管理中斷。

  對于 Linux SMP 核心而言,這是一個(gè)常規事件,而且是 SMP 核心在 AMP 配置中更受青睞的另一個(gè)原因。遠程處理器框架能方便地管理中斷,只需來(lái)自設備驅動(dòng)程序的最小支持。

  設備驅動(dòng)程序

  設備驅動(dòng)開(kāi)發(fā)是個(gè)始終需要關(guān)注的問(wèn)題,因為所需的技能組合可能無(wú)法立刻提供。幸運的是,Linux 核心的 remoteproc 和 rpmsg 框架完成大部分重活;驅動(dòng)程序只需要實(shí)現幾個(gè)標準驅動(dòng)程序例程。功能完整的驅動(dòng)程序可能只需要幾百行代碼。核心源代碼樹(shù)包含嵌入式開(kāi)發(fā)人員可根據自身要求進(jìn)行調整的驅動(dòng)程序范例。

  廠(chǎng)商還提供通用的開(kāi)源設備驅動(dòng)程序。DesignLinx Hardware Solutions 提供針對 Linux 和 FreeRTOS 的通用 rpmsg 驅動(dòng)程序。由于通用驅動(dòng)程序沒(méi)有假定所交換消息的格式,因此嵌入式開(kāi)發(fā)人員可將其用于多種 AMP 應用,無(wú)需做任何修改。

  


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: AMP SoC

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>