国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 1682|回復(fù): 0
打印 上一主題 下一主題

CPU對共享外設(shè)和資源的調(diào)配方法

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2023-2-7 15:49:54 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
關(guān)鍵詞: 多核異構(gòu)
在多核異構(gòu)CPU中,多個(gè)內(nèi)核就如同多個(gè)大腦,而外設(shè)和內(nèi)存等資源就如同手足,那么多個(gè)大腦該如何控制手足才能保證它們正常有序地運(yùn)行呢?以[color=inherit !important]NXP [color=inherit !important]i.MX8M Plus處理器的A核和M核為例,其實(shí)只有少部分外設(shè)被指定了屬于哪個(gè)核,而大部分的外設(shè)都能被A核和M核同時(shí)使用。如下圖所示:
這里我們通過[color=inherit !important]飛凌嵌入式OKMX8MP-C[color=inherit !important]開發(fā)板上的UA[color=inherit !important]RT3進(jìn)行演示,同時(shí)編寫A核和M核程序控制UAR[color=inherit !important]T3打印信息,通過UART3將開發(fā)板與電腦鏈接,在電腦串口調(diào)試界面可以看到A核和M核同時(shí)輸出了信息。
A核和M核同時(shí)輸出信息
那么在實(shí)際應(yīng)用中,當(dāng)某個(gè)外設(shè)需要被指定的內(nèi)核獨(dú)占或被多核同時(shí)使用時(shí),該如何合理安排時(shí)序才能避免外設(shè)輸出異常呢?接下來,小編就以[color=inherit !important]飛凌[color=inherit !important]嵌入式OKMX8MP-C開發(fā)板為例,將多核異構(gòu)處理器對共享外設(shè)和資源的調(diào)配方法介紹給大家。
飛凌嵌入式OKMX8MP-C開發(fā)板所搭載的NXP [color=inherit !important]i.MX8MPlus處理器具備強(qiáng)悍的性能,集成4個(gè)主頻最高可達(dá)1.8GHz (工業(yè)級主頻為1.6GHz)的Arm [color=inherit !important]Cortex-A53多任務(wù)核和1個(gè)Cortex-M7實(shí)時(shí)核,不管是對數(shù)據(jù)的高速吞吐、處理,還是復(fù)雜的[color=inherit !important]人機(jī)交互界面處理,都能從容應(yīng)對。
一、A核獨(dú)占外設(shè)
這種情況比較簡單,在設(shè)備樹中定義設(shè)備節(jié)點(diǎn),編譯新的設(shè)備樹,將生成的OK8MP-C.dtb和Image拷貝至以下目錄:開發(fā)板/run/media/mmcblk2p1/ ,重啟[color=inherit !important]iMX8MP開發(fā)板,同時(shí)M核程序中不初始化UART3即可。以UART3為例:
二、M核獨(dú)占外設(shè)
對于NXP [color=inherit !important]i.MX8M Plus處理器而言,由于A核和M核對內(nèi)存和外設(shè)的訪問都是共享且平等的,為了確保不產(chǎn)生資源沖突會通過資源域(resource domains)控制器從硬件層面來對指定內(nèi)存和外設(shè)的訪問權(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)換代碼如下:
三、多核共享外設(shè)
如果多核想共享某個(gè)外設(shè),但在某段時(shí)間又需要獨(dú)占,后續(xù)再釋放;或者多核的開發(fā)人員不是同一人,為了避免出錯,在自己的程序中強(qiáng)制獨(dú)占某個(gè)核,是否可以實(shí)現(xiàn)呢?答案是肯定的——使用RDC功能即可。RDC全程為Resource Domain Controller,即資源域控制器,可以通過寄存器和信號量兩種方式實(shí)現(xiàn)某個(gè)域?qū)ν庠O(shè)的獨(dú)占和釋放。
1. 寄存器RDC_PDAPn
由于i.MX8M Plus處理器最多支持4個(gè)域,因此對寄存器后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è)序號,用于區(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è)備樹中沒有刪除UART3,所以在A核啟動內(nèi)核解析設(shè)備樹生成設(shè)備文件時(shí),需對UART3操作。因M核程序中禁止A核的訪問UART3,此時(shí)內(nèi)核將無法正常啟動。可以加10秒延時(shí)等待內(nèi)核啟動完成,也可在A核啟動后,通過雙核通信告知M核啟動RDC外設(shè)獨(dú)占。
2. 信號量RDCSEMA42
RDC SEMA42是一個(gè)專門配合RDC功能的信號量,當(dāng)某個(gè)域獲取某個(gè)外設(shè)的SEMA42鎖后,其他的域?qū)o法訪問此外設(shè),只能等待域釋放該外設(shè)鎖,才能再訪問。RDC SEMA42數(shù)據(jù)鎖的開啟配置如下:
M核對UART3上鎖,獲取管腳的使用權(quán):
M核釋放UART3的RDC SEMA42鎖,放棄管腳的使用權(quán):
修改程序后驗(yàn)證,發(fā)現(xiàn)和RDC寄存器一樣,M核上鎖后獲取UART3使用權(quán),僅可獨(dú)自發(fā)送,A核訪問UART3會出錯。釋放SEMA42鎖后,A核和M核就均能訪問UART3了。
以上就是小編基于OKMX8MP-C開發(fā)板為大家?guī)淼亩嗪水悩?gòu)處理器對外設(shè)和內(nèi)存資源的使用方法,各位工程師小伙伴可以根據(jù)自己的需求靈活設(shè)置策略,以滿足不同場景的需要。

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产一区二区三区日韩欧美 | 伊人222综合| 日本在线视频网址 | 国产精品三级一区二区 | 9984四虎永久免费网站 | 日本三级黄网站 | 亚洲欧美国产精品第1页 | 日韩字幕一中文在线综合 | 天天爱天天做久久天天狠狼 | 91成人高清在线播放 | 手机看片日本 | 欧美一区精品二区三区 | 国产在线91精品入口 | 一级黄色毛片视频 | 国产香蕉久久精品综合网 | 天堂网在线资源www最新版 | 亚洲色图 在线视频 | 亚洲视频污 | 欧美三级在线观看视频 | jjzzjjzzjjzz| 天天操天天插 | 久久久一区二区三区不卡 | 亚洲欧美日韩激情在线观看 | 亚洲欧美日韩另类在线一 | 国产偷倩在线播放 | 男女啪啦猛视频免费 | 欧美啪视频 | 青青射| 精品在线网站 | 日本免费二区三区久久 | 中文字幕在线手机播放 | 久在线观看 | 色婷婷亚洲精品综合影院 | 色婷婷影院在线视频免费播放 | 朋友的妻子 在线播放 | 国产后式a一视频 | 亚洲视频日韩视频 | 三及毛片| 美日韩一区二区 | 欧美在线观看视频免费 | 8008幸福宝app官网下载 |