• 正文
    • 01、A核獨(dú)占外設(shè)
    • 02、M核獨(dú)占外設(shè)
    • 03、多核共享外設(shè)
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

【玩轉(zhuǎn)多核異構(gòu)】處理器對(duì)共享外設(shè)和資源的調(diào)配方法

2023/02/17
1542
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

在多核異構(gòu)CPU中,多個(gè)內(nèi)核就如同多個(gè)大腦,而外設(shè)和內(nèi)存等資源就如同手足,那么多個(gè)大腦該如何控制手足才能保證它們正常有序地運(yùn)行呢?

NXP i.MX8M Plus處理器的A核和M核為例,其實(shí)只有少部分外設(shè)被指定了屬于哪個(gè)核,而大部分的外設(shè)都能被A核和M核同時(shí)使用。如下圖所示:

這里我們通過(guò)飛凌嵌入式OKMX8MP-C開發(fā)板上的UART3進(jìn)行演示,同時(shí)編寫A核和M核程序控制UART3打印信息,通過(guò)UART3將開發(fā)板與電腦鏈接,在電腦串口調(diào)試界面可以看到A核和M核同時(shí)輸出了信息。

A核和M核同時(shí)輸出信息

那么在實(shí)際應(yīng)用中,當(dāng)某個(gè)外設(shè)需要被指定的內(nèi)核獨(dú)占或被多核同時(shí)使用時(shí),該如何合理安排時(shí)序才能避免外設(shè)輸出異常呢?接下來(lái),小編就以飛凌嵌入式OKMX8MP-C開發(fā)板為例,將多核異構(gòu)處理器對(duì)共享外設(shè)和資源的調(diào)配方法介紹給大家。

飛凌嵌入式OKMX8MP-C開發(fā)板所搭載的NXP i.MX8M Plus處理器具備強(qiáng)悍的性能,集成4個(gè)主頻最高可達(dá)1.8GHz?(工業(yè)級(jí)主頻為1.6GHz)的Arm Cortex-A53多任務(wù)核和1個(gè)Cortex-M7實(shí)時(shí)核,不管是對(duì)數(shù)據(jù)的高速吞吐、處理,還是復(fù)雜的人機(jī)交互界面處理,都能從容應(yīng)對(duì)。

01、A核獨(dú)占外設(shè)

這種情況比較簡(jiǎn)單,在設(shè)備樹中定義設(shè)備節(jié)點(diǎn),編譯新的設(shè)備樹,將生成的OK8MP-C.dtb和Image拷貝至以下目錄:

開發(fā)板/run/media/mmcblk2p1/?

重啟開發(fā)板,同時(shí)M核程序中不初始化UART3即可。以UART3為例:

02、M核獨(dú)占外設(shè)

對(duì)于NXP i.MX8M Plus處理器而言,由于A核和M核對(duì)內(nèi)存和外設(shè)的訪問(wèn)都是共享且平等的,為了確保不產(chǎn)生資源沖突會(huì)通過(guò)資源域(resource
domains)控制器硬件層面來(lái)對(duì)指定內(nèi)存和外設(shè)的訪問(wèn)權(quán)限進(jìn)行保護(hù)
。

i.MX8M Plus處理器允許定義最多4個(gè)資源域并將不同的內(nèi)存和外設(shè)資源指定到這些資源域中。默認(rèn)情況下,A核和相關(guān)外設(shè)被指定于域0;當(dāng)M核程序運(yùn)行后,M核以及相關(guān)外設(shè)最初也是域0,但馬上被重新指定于域1。

因此若一個(gè)外設(shè)需要被M7內(nèi)核單獨(dú)使用,首先要修改A核設(shè)備樹,刪除外設(shè)節(jié)點(diǎn);其次在M核程序中將域0改為域1;最后再將外設(shè)初始化,這樣就可以單獨(dú)控制了。域轉(zhuǎn)換代碼如下:

03、多核共享外設(shè)

如果多核想共享某個(gè)外設(shè),但在某段時(shí)間又需要獨(dú)占,后續(xù)再釋放;或者多核的開發(fā)人員不是同一人,為了避免出錯(cuò),在自己的程序中強(qiáng)制獨(dú)占某個(gè)核,是否可以實(shí)現(xiàn)呢?

答案是肯定的——使用RDC功能即可。RDC全程為Resource
Domain Controller,即資源域控制器,可以通過(guò)寄存器和信號(hào)量?jī)煞N方式實(shí)現(xiàn)某個(gè)域?qū)ν庠O(shè)的獨(dú)占和釋放。

1. 寄存器RDC_PDAPn

由于i.MX8M Plus處理器最多支持4個(gè)域,因此對(duì)寄存器后8比特位寫入不同數(shù)值,將允許相應(yīng)的域?qū)δ硞€(gè)管腳和內(nèi)存的讀寫使能,如禁止A核域0讀寫某個(gè)管腳,則設(shè)置寄存器為0xFC即可,后兩個(gè)比特位為0,表示禁止域0讀寫此外設(shè);其他六個(gè)比特位為1,表示允許從域1到域3讀寫此外設(shè)。

每個(gè)共享外設(shè)在RDC資源表中均有一個(gè)序號(hào),用于區(qū)別其他外設(shè),如UART3在RDC中定義如下:kRDC_Periph_UART3?=?104U,?/**<?UART3?RDC?Peripheral?*/

在M核程序中可如下修改程序,實(shí)現(xiàn)M核獨(dú)占UART3的目的。

修改程序驗(yàn)證,此時(shí)只有M核控制UART3打印信息。

僅M核輸出信息

注意:

因?yàn)樵谠O(shè)備樹中沒(méi)有刪除UART3,所以在A核啟動(dòng)內(nèi)核解析設(shè)備樹生成設(shè)備文件時(shí),需對(duì)UART3操作。因M核程序中禁止A核的訪問(wèn)UART3,此時(shí)內(nèi)核將無(wú)法正常啟動(dòng)??梢约?0秒延時(shí)等待內(nèi)核啟動(dòng)完成,也可在A核啟動(dòng)后,通過(guò)雙核通信告知M核啟動(dòng)RDC外設(shè)獨(dú)占。

2. 信號(hào)量RDCSEMA42

RDC

SEMA42是一個(gè)專門配合RDC功能的信號(hào)量,當(dāng)某個(gè)域獲取某個(gè)外設(shè)的SEMA42鎖后,其他的域?qū)o(wú)法訪問(wèn)此外設(shè),只能等待域釋放該外設(shè)鎖,才能再訪問(wèn)。

RDC

SEMA42數(shù)據(jù)鎖的開啟配置如下:

M核對(duì)UART3上鎖,獲取管腳的使用權(quán):

M核釋放UART3的RDC

SEMA42鎖,放棄管腳的使用權(quán):

修改程序后驗(yàn)證,發(fā)現(xiàn)和RDC寄存器一樣,M核上鎖后獲取UART3使用權(quán),僅可獨(dú)自發(fā)送,A核訪問(wèn)UART3會(huì)出錯(cuò)。釋放SEMA42鎖后,A核和M核就均能訪問(wèn)UART3了。

以上就是小編基于OKMX8MP-C開發(fā)板為大家?guī)?lái)的多核異構(gòu)處理器對(duì)外設(shè)和內(nèi)存資源的使用方法,各位工程師小伙伴可以根據(jù)自己的需求靈活設(shè)置策略,以滿足不同場(chǎng)景的需要。

飛凌嵌入式

飛凌嵌入式

保定飛凌嵌入式技術(shù)有限公司,創(chuàng)建于2006年,是一家專注嵌入式核心控制系統(tǒng)研發(fā)、設(shè)計(jì)和生產(chǎn)的高新技術(shù)企業(yè),是國(guó)內(nèi)較早專業(yè)從事嵌入式技術(shù)的企業(yè)之一。 經(jīng)過(guò)十幾年的發(fā)展與積累,公司擁有業(yè)內(nèi)優(yōu)秀的軟硬件研發(fā)團(tuán)隊(duì),在北京及保定建立兩大研發(fā)基地,在蘇州、深圳設(shè)有華東、華南技術(shù)服務(wù)中心,并在北美、歐洲以及亞太等其他國(guó)家和地區(qū)擁有國(guó)際業(yè)務(wù)網(wǎng)絡(luò)。公司研發(fā)的智能設(shè)備核心平臺(tái)廣泛應(yīng)用于物聯(lián)網(wǎng)、工控、軌道交通、醫(yī)療、電力、商業(yè)電子、智能家居、安防、機(jī)器人、環(huán)境監(jiān)測(cè)等諸多領(lǐng)域。

保定飛凌嵌入式技術(shù)有限公司,創(chuàng)建于2006年,是一家專注嵌入式核心控制系統(tǒng)研發(fā)、設(shè)計(jì)和生產(chǎn)的高新技術(shù)企業(yè),是國(guó)內(nèi)較早專業(yè)從事嵌入式技術(shù)的企業(yè)之一。 經(jīng)過(guò)十幾年的發(fā)展與積累,公司擁有業(yè)內(nèi)優(yōu)秀的軟硬件研發(fā)團(tuán)隊(duì),在北京及保定建立兩大研發(fā)基地,在蘇州、深圳設(shè)有華東、華南技術(shù)服務(wù)中心,并在北美、歐洲以及亞太等其他國(guó)家和地區(qū)擁有國(guó)際業(yè)務(wù)網(wǎng)絡(luò)。公司研發(fā)的智能設(shè)備核心平臺(tái)廣泛應(yīng)用于物聯(lián)網(wǎng)、工控、軌道交通、醫(yī)療、電力、商業(yè)電子、智能家居、安防、機(jī)器人、環(huán)境監(jiān)測(cè)等諸多領(lǐng)域。收起

查看更多

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

秉承專業(yè)態(tài)度,專注智能設(shè)備核心平臺(tái)研發(fā)與制造,以技術(shù)研發(fā)創(chuàng)新為主導(dǎo),以客戶實(shí)用化,產(chǎn)品化為目標(biāo),把握嵌入式行業(yè)的前沿發(fā)展需求,利用核心技術(shù)為客戶提供穩(wěn)定、可靠、功能優(yōu)異的高品質(zhì)產(chǎn)品。合作聯(lián)系:17713286011