0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在非對稱多核架構(gòu)中實現(xiàn)軟件組件

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Valter Minute ? 2022-06-14 09:35 ? 次閱讀

之前我討論了非對稱多核以及如何在需要實時響應時間和豐富的用戶界面和/或連接性的場景中使用它。我使用飛思卡爾的 Vybrid 作為此類架構(gòu)的示例,并討論了使這種解決方案比使用串行鏈路連接兩個獨立處理器的“傳統(tǒng)”方法更易于開發(fā)和更可靠的硬件特性。

在本文中,我將通過展示一個由 Toradex 和 AntMicro 開發(fā)的演示項目來展示可用于在這種架構(gòu)上實現(xiàn)解決方案的軟件組件。我們開發(fā)了一個提供觸摸屏用戶界面的 2D 繪圖儀。機械部分不是很復雜。它來自 Internet 上可用的工具包。我們進行了一些改進以提高繪圖質(zhì)量和機械可靠性。

控制繪圖硬件需要有限數(shù)量的數(shù)字 I/O。另一方面,我們需要精確的時間來獲得良好的繪圖質(zhì)量,并且需要處理大量的數(shù)據(jù)來繪制復雜的主題。

現(xiàn)在您已經(jīng)了解了最終結(jié)果,我們可以深入了解它并了解它是如何實現(xiàn)的。

該系統(tǒng)有兩個主要組成部分:一個基于觸摸屏的用戶界面,顯示不同的矢量圖形圖像并讓用戶選擇繪圖儀將轉(zhuǎn)移到紙上的一個,以及一個在繪圖過程中控制硬件的實時控制系統(tǒng)。每個組件都在專用內(nèi)核上運行。我們將 Cortex-A5 用于用戶界面,將 Cortex-M4 用于實時控制。

在 Cortex-A5 上,我們選擇運行 Linux 并使用 QT 框架來實現(xiàn)用戶模式應用程序。Linux 是嵌入式設備的常見選擇,并以合理的占用空間提供了我們系統(tǒng)所需的所有功能。

Digia 維護的 Qt 框架也是嵌入式設備的流行選擇。它提供了豐富的功能集(不限于用戶界面)、用戶友好的集成開發(fā)環(huán)境(包括 UI 設計器)和雙重開源/商業(yè)許可。Qt 支持 SVG 矢量圖形格式,這使得選擇它作為顯示器上顯示的圖像格式變得很容易。相同的圖像被轉(zhuǎn)換為?? G 代碼(一種數(shù)字控制編程語言)。控制系統(tǒng)解析 G 代碼以執(zhí)行實際的繪圖操作。

在 Cortex-M4 上,我們需要同時執(zhí)行活動,從 UI 獲取命令和數(shù)據(jù),同時移動 X 和 Y 軸。這種控制可以在裸機固件中實現(xiàn),但實時操作系統(tǒng) (RTOS) 可以簡化開發(fā)。RTOS 管理不同任務的調(diào)度,而不會丟失實時響應時間。它還允許從應用程序代碼直接訪問硬件。

我們選擇 eCos(由 AntMicro 移植)作為 m4 內(nèi)核的 RTOS。它提供了一個調(diào)度器和一個硬件抽象層,使我們的應用程序代碼變得簡單。這兩個組件需要通信,我們有三種不同的通信方式:

? 發(fā)送到控制系統(tǒng)的命令

? 關(guān)于繪圖儀當前狀態(tài)的反饋

? 提供用于控制繪圖的 G 代碼

前兩種通信涉及少量數(shù)據(jù),需要快速傳遞。飛思卡爾提供了一個名為多核通信 (MCC) 的庫,可以很好地滿足這些要求。它提供了一個基于端點的接口,用于交換消息。在 Linux 上運行的每個應用程序都可以創(chuàng)建自己的端點,也可以將消息發(fā)送到由 M4 核心管理的端點。從開發(fā)人員的角度來看,這種機制類似于套接字或管道,提供易于使用的通信鏈接。

AntMicro 將 MCC 移植到 eCos,在 M4 內(nèi)核上提供相同的功能。MCC 消息可用于發(fā)送小數(shù)據(jù)包,保持它們的順序。它們不適合一次發(fā)送復雜圖形的完整 G 代碼。為此,我們決定使用共享內(nèi)存,允許 M4 內(nèi)核訪問 Linux 應用程序加載的 G 代碼數(shù)據(jù)。

架構(gòu)如下圖所示,突出顯示了在兩個內(nèi)核上運行的不同組件。

pYYBAGKn5nCAYDZHAAEyePInf7k702.png

Linux應用程序?qū)4代碼加載到內(nèi)存并使用飛思卡爾提供的mqxboot命令行工具啟動(該工具是開源的,可以作為參考了解M4如何初始化,并在內(nèi)部直接實現(xiàn)該功能如果需要對過程進行更嚴格的控制,則應用程序代碼)。然后通過 MCC 交換“歡迎”消息,以確保兩個內(nèi)核都啟動并運行。當用戶選擇一個繪圖并按下按鈕開始繪圖時,Linux 應用程序執(zhí)行一系列操作:

? 發(fā)送“home”命令移動繪圖區(qū)域左上角的筆

? 將 G 代碼數(shù)據(jù)加載到與 M4 共享的內(nèi)存區(qū)域(這也可以使用 mqxboot 完成)

? 發(fā)送“start”命令開始繪圖過程

此時,M4 內(nèi)核獨立運行,處理 G 代碼數(shù)據(jù),移動軸,并發(fā)送回有關(guān)其進度的通知。我們提供了一個按鈕,可以在一段時間內(nèi)以 100% 的速度加載 A5 內(nèi)核,以表明這不會影響另一個內(nèi)核的操作,因為它可以獨立操作并訪問完成繪圖所需的數(shù)據(jù)。

兩個應用程序的源代碼都可以在github上找到,你可以看到代碼總量相當合理(幾百行),并且通過MCC實現(xiàn)的管理通信通道的代碼非常簡單易讀。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11177

    瀏覽量

    208494
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6617

    瀏覽量

    123037
  • RTOS
    +關(guān)注

    關(guān)注

    21

    文章

    808

    瀏覽量

    119299
收藏 人收藏

    評論

    相關(guān)推薦

    對稱多處理器的特點是什么

    的主要特點是處理器之間的對稱性,這意味著每個處理器都可以執(zhí)行任何任務,并且它們處理能力上是等價的。 1. SMP的定義和歷史 對稱多處理器系統(tǒng)是一種多處理器計算機硬件架構(gòu),其中多個處
    的頭像 發(fā)表于 10-10 16:36 ?138次閱讀

    對稱多處理器系統(tǒng)的進程分配包括

    現(xiàn)代計算機系統(tǒng),對稱多處理器(SMP)架構(gòu)已經(jīng)成為主流。這種架構(gòu)允許多個處理器共享相同的內(nèi)存地址空間和系統(tǒng)資源,從而提高了系統(tǒng)的處理能力
    的頭像 發(fā)表于 10-10 16:34 ?131次閱讀

    對稱多處理器和非對稱多處理器的區(qū)別

    隨著計算需求的日益增長,單處理器系統(tǒng)已經(jīng)無法滿足高性能計算的需求。多處理器系統(tǒng)應運而生,它們通過將多個處理器集成到一個系統(tǒng)來提高計算能力。多處理器系統(tǒng),有兩種主要的架構(gòu)
    的頭像 發(fā)表于 10-10 15:58 ?231次閱讀

    混合部署 | 迅為RK3568上同時部署RT-Thread和Linux系統(tǒng)

    非對稱多處理)是一種更靈活的架構(gòu),允許不同的核心運行不同的操作系統(tǒng),實現(xiàn)更高效的資源利用和任務分配。通過 AMP,系統(tǒng)可以為不同的任務選擇最合適的操作系統(tǒng)和處理方式。 當前迅為iTOP-RK3568開發(fā)板
    發(fā)表于 09-18 10:54

    請問高頻放大器用非對稱電源供電會有什么影響?

    高頻放大器用非對稱電源供電會有什么影響?
    發(fā)表于 08-29 06:22

    OPA828運放非對稱電源供電有什么好處嗎?

    看到一些精密儀器的電路運放好像特意設計成非對稱電源供電,比如+14v、-17v這種,請問運放非對稱電源供電有什么好處嗎?信號擺幅不超過正負7v
    發(fā)表于 08-01 06:48

    TL084能否采用-5V和+ 32V的非對稱雙電源供電呢?

    看手冊雙電源最高支持到+-20V,單電源是4.5V到40V。請問一下能否采用-5V和+ 32V的非對稱雙電源供電呢?
    發(fā)表于 07-29 06:50

    【本周六-上海】SMP對稱多處理 線下培訓

    對稱多處理(SymmetricMultiprocessing,SMP)是一種常見的并行計算架構(gòu),其中多個處理器核心共享相同的內(nèi)存和總線系統(tǒng)。這種架構(gòu)允許多個處理器核心同時運行獨立的指令流,從而
    的頭像 發(fā)表于 06-13 08:35 ?231次閱讀
    【本周六-上?!縎MP<b class='flag-5'>對稱多</b>處理 線下培訓

    線下培訓 | 瑞薩電子基于RZ/G2L的OpenAMP混合部署實戰(zhàn)培訓

    OpenAMP一個提供用于處理非對稱多處理(AMP)系統(tǒng)的軟件組件,可以簡化異構(gòu)多核處理器系統(tǒng)間的高效通信,提供跨平臺、可擴展且靈活的解決方案。通過OpenAMP,開發(fā)人員可以輕松地
    的頭像 發(fā)表于 05-17 08:01 ?468次閱讀
    線下培訓 | 瑞薩電子基于RZ/G2L的OpenAMP混合部署實戰(zhàn)培訓

    risc-v多核芯片在AI方面的應用

    處理器的性能,使其處理復雜的AI任務時具有更高的效率。同時,RISC-V允許任何人免費設計、制造和銷售RISC-V芯片和軟件,無需像ARM那樣購買昂貴的架構(gòu)許可證,這進一步降低了RISC-V
    發(fā)表于 04-28 09:20

    單相降壓轉(zhuǎn)換器雙非對稱BG評估板數(shù)據(jù)手冊

    電子發(fā)燒友網(wǎng)站提供《單相降壓轉(zhuǎn)換器雙非對稱BG評估板數(shù)據(jù)手冊.rar》資料免費下載
    發(fā)表于 04-14 17:10 ?0次下載
    單相降壓轉(zhuǎn)換器雙<b class='flag-5'>非對稱</b>BG評估板數(shù)據(jù)手冊

    單相降壓轉(zhuǎn)換器雙非對稱AG評估板數(shù)據(jù)手冊

    電子發(fā)燒友網(wǎng)站提供《單相降壓轉(zhuǎn)換器雙非對稱AG評估板數(shù)據(jù)手冊.rar》資料免費下載
    發(fā)表于 04-14 17:02 ?0次下載
    單相降壓轉(zhuǎn)換器雙<b class='flag-5'>非對稱</b>AG評估板數(shù)據(jù)手冊

    為什么三相短路是對稱故障?單相短路是非對稱故障呢?

    為什么三相短路是對稱故障?單相短路是非對稱故障呢? 三相短路是對稱故障,而單相短路是非對稱故障,其根本原因在于電網(wǎng)的相量關(guān)系和電壓分布。
    的頭像 發(fā)表于 02-18 11:41 ?3148次閱讀

    “國產(chǎn)雙系統(tǒng)”出爐,RK3568J非對稱AMP:Linux+RTOS/裸機

    裝置、小電流選線設備等。 “非對稱AMP”對工業(yè)有何意義 更強“系統(tǒng)實時性”非對稱AMP架構(gòu)擁有更強的系統(tǒng)實時性,原因在于可使用固定的核心進行實時任務處理。因此工業(yè)自動化控制領(lǐng)域中采
    發(fā)表于 12-01 09:35

    AUTOSAR架構(gòu)下的多核通信介紹

    隨著汽車ECU迅速的往域控制器方向發(fā)展,ECU要處理的任務越來越多,單核CPU的負載越來越大,多核ECU勢在必行。AUTOSAR架構(gòu)下OS支持多核處理,本系列文章將詳細介紹AUTOSAR架構(gòu)
    的頭像 發(fā)表于 11-13 09:24 ?1847次閱讀
    AUTOSAR<b class='flag-5'>架構(gòu)</b>下的<b class='flag-5'>多核</b>通信介紹