當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式動(dòng)態(tài)
[導(dǎo)讀]嵌入式系統(tǒng)一般分為兩大類:需要硬實(shí)時(shí)性能的;和不需要硬實(shí)時(shí)性能的。過(guò)去,我們不得不做出艱 抉擇,即選擇實(shí)時(shí)操作系統(tǒng)的性能還是我們鐘愛(ài)的 Linux 系統(tǒng)的豐富特性,然后努力彌補(bǔ)不足之處。

充分利用 Linux 的實(shí)時(shí)性能和豐富特性。

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

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

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

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

LINUX 多處理簡(jiǎn)介

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

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

 圖 1 — 對(duì)稱多處理。SMP 核心可在多個(gè)內(nèi)核上同時(shí)運(yùn)行。

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

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

   圖 2 — 具有 Linux SMP 核心的 AMP

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

追蹤緩沖區(qū)

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

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

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

虛擬 I/O 設(shè)備

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

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

遠(yuǎn)程處理器消息框架

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

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

命名服務(wù)

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

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

管理中斷

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

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

設(shè)備驅(qū)動(dòng)程序

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

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

引腳內(nèi)移動(dòng)

核心的多處理支持并不局限于同構(gòu)多處理系統(tǒng)(使用同一類型處理器的系統(tǒng))。以上介紹的所有特性也可以用在異構(gòu)系統(tǒng)中(具有不同類型處理器的系統(tǒng))。當(dāng)“在引腳內(nèi)”移植已有設(shè)計(jì)時(shí),這些多處理功能尤其有用。

新型 SoC 產(chǎn)品使設(shè)計(jì)人員能夠方便地將各種硬件設(shè)計(jì)從印刷電路板移植到片上系統(tǒng)(圖 3)。過(guò)去在 PCB 上作為分立處理器和組件的部分可以完全在 SoC 的引腳內(nèi)實(shí)現(xiàn)。

例如,我們可以使用賽靈思 Zynq-7000 系列 SoC 實(shí)現(xiàn)圖 3 中的初始 PCB 硬件架構(gòu),將其中一個(gè) ARM 處理器作為可編程邏輯中的控制 CPU 和軟處理器(例如賽靈思 MicroBlaze™ 處理器),以替代分立處理器。我們可以使用剩余的 ARM 處理器運(yùn)行 Linux SMP 核心(圖 4)。

將 Linux 添加到初始設(shè)計(jì)中能夠?yàn)?ARM 內(nèi)核和軟核處理器提供以上描述的所有標(biāo)準(zhǔn)多處理功能(例如啟動(dòng)、停止、重載、追蹤緩沖區(qū)和遠(yuǎn)程消息)。而且,還帶來(lái)豐富的 Linux 功能集,可支持多種網(wǎng)絡(luò)接口(以太網(wǎng)、Wi-Fi、藍(lán)牙)、網(wǎng)絡(luò)服務(wù)(Web 服務(wù)器、FTP、SSH、SNMP)、文件系統(tǒng)(DOS、NFS、cramfs、閃存存儲(chǔ)器)以及其他接口(PCIe、SPI、USB、MMC、視頻)等。這些特性能方便地實(shí)現(xiàn)新功能,無(wú)需對(duì)經(jīng)過(guò)檢驗(yàn)的架構(gòu)做太大改動(dòng)。

新型 SoC 產(chǎn)品使設(shè)計(jì)人員能夠方便地將各種硬件設(shè)計(jì)從印刷電路板移植到片上系統(tǒng)。

內(nèi)核不斷涌現(xiàn)

過(guò)去幾年中,針對(duì)嵌入式市場(chǎng)的多核 SoC 產(chǎn)品不斷增加,而且很適合用于 AMP 配置。

例如,賽靈思 UltraScale+™ MPSoC 架構(gòu)包含一個(gè) 64 位四核 ARM Cortex-A53、一個(gè) 32 位雙核 ARM Cortex-R5、一個(gè)圖形處理單元 (GPU) 以及多種其他外設(shè),當(dāng)然還包括有用的可編程邏輯。這為那些清楚如何駕馭實(shí)時(shí)操作系統(tǒng)的性能以及 Linux 核心的豐富特性集的設(shè)計(jì)人員提供了沃土。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉