欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種非對(duì)稱處理系統(tǒng)下多核共用串口的方法及系統(tǒng)與流程

文檔序號(hào):12271242閱讀:381來(lái)源:國(guó)知局
一種非對(duì)稱處理系統(tǒng)下多核共用串口的方法及系統(tǒng)與流程

本發(fā)明涉及嵌入式系統(tǒng)技術(shù)領(lǐng)域,尤其涉及一種非對(duì)稱處理系統(tǒng)下多核共用串口的方法及系統(tǒng)。



背景技術(shù):

在嵌入式多核系統(tǒng)領(lǐng)域,存在兩種技術(shù),一是AMP(Asymmetric Multi-Processing)非對(duì)稱多處理,另外一種是SMP(Symmetric Multi Processing)對(duì)稱多處理。SMP系統(tǒng)上的每個(gè)CPU共享系統(tǒng)所有資源,包括串口在內(nèi),SMP系統(tǒng)只要一個(gè)控制臺(tái)就夠了。而AMP每個(gè)CPU有獨(dú)立的運(yùn)行代碼,任務(wù)的調(diào)度也是獨(dú)立的,對(duì)整個(gè)系統(tǒng)資源的訪問(wèn)也是互斥的,每個(gè)CPU上運(yùn)行的操作系統(tǒng)(OS)甚至完全不一樣,這樣完全有必要為每個(gè)CPU配置一個(gè)console(控制臺(tái))。在vxworks上支持這種功能,MSD(MIPC Serial Devices)組件完整實(shí)現(xiàn)了主從CPU共用串口的功能,該功能基于MIPC(Multi-OS IPC)多操作系統(tǒng)之間進(jìn)程通信之上,功能完善,實(shí)現(xiàn)代碼量大,配置也很復(fù)雜。從核所在的MSD節(jié)點(diǎn)要I/O完全依賴于主核節(jié)點(diǎn),統(tǒng)一與tty驅(qū)動(dòng)交互并實(shí)現(xiàn)I/O。如果主核tty驅(qū)動(dòng)阻塞或者主核節(jié)點(diǎn)阻塞或者故障,那么所有的從核節(jié)點(diǎn)I/O都被阻塞或者故障。

因此,現(xiàn)有技術(shù)還有待于改進(jìn)和發(fā)展。



技術(shù)實(shí)現(xiàn)要素:

鑒于現(xiàn)有技術(shù)的不足,本發(fā)明目的在于提供一種非對(duì)稱處理系統(tǒng)下多核共用串口的方法及系統(tǒng),旨在解決現(xiàn)有技術(shù)中從核所在的節(jié)點(diǎn)要輸入或輸出信息完全依賴于主核節(jié)點(diǎn),統(tǒng)一與驅(qū)動(dòng)交互實(shí)現(xiàn)輸入或輸出;如果主核驅(qū)動(dòng)阻塞或者主核節(jié)點(diǎn)阻塞或者故障,那么所有的從核節(jié)點(diǎn)輸入或輸出都被阻塞或者故障的技術(shù)問(wèn)題。

本發(fā)明的技術(shù)方案如下:

一種非對(duì)稱處理系統(tǒng)下多核共用串口的方法,其中,方法包括:

A、主核處理器和從核處理器分別對(duì)串口的通信參數(shù)進(jìn)行配置,并分別設(shè)置主核處理器的串口驅(qū)動(dòng)方式和從核處理器的串口驅(qū)動(dòng)方式;

B、主核處理器和從核處理器啟動(dòng)完成后,主核處理器根據(jù)主核處理器串口驅(qū)動(dòng)方式通過(guò)串口下發(fā)信息;

C、當(dāng)檢測(cè)到從核處理器的驅(qū)動(dòng)串口使能命令時(shí),主核處理器關(guān)閉主核串口驅(qū)動(dòng);

D、從核處理器根據(jù)從核處理器串口驅(qū)動(dòng)方式通過(guò)串口下發(fā)信息。

所述的非對(duì)稱處理系統(tǒng)下多核共用串口的方法,其中,所述A中主核處理器和從核處理器分別對(duì)串口的通信參數(shù)進(jìn)行配置具體包括:

A11、主核處理器對(duì)串口的波特率、奇偶校驗(yàn)位、數(shù)據(jù)位、輸入頻率進(jìn)行配置;

A12、從核處理器對(duì)串口的波特率、奇偶校驗(yàn)位、數(shù)據(jù)位、輸入頻率進(jìn)行配置。

所述的非對(duì)稱處理系統(tǒng)下多核共用串口的方法,其中,所述A中分別設(shè)置主核處理器的串口驅(qū)動(dòng)方式和從核處理器的串口驅(qū)動(dòng)方式具體包括:

A21、設(shè)置主核處理器的串口驅(qū)動(dòng)方式為中斷收發(fā)包方式,每次收到或發(fā)送一個(gè)字符發(fā)生一次中斷;

A22、設(shè)置從核處理器的串口驅(qū)動(dòng)方式為輪詢方式,通過(guò)查詢從核使用串口的標(biāo)識(shí)的值進(jìn)行輸入或輸出字符。

所述的非對(duì)稱處理系統(tǒng)下多核共用串口的方法,其中,所述A之前還包括:

S、預(yù)先設(shè)置一個(gè)從核使用串口的標(biāo)識(shí),當(dāng)允許從核使用串口時(shí),從核使用串口的標(biāo)識(shí)的值為真;當(dāng)不允許從核使用串口時(shí),從核使用串口的標(biāo)識(shí)的值為假。

所述的非對(duì)稱處理系統(tǒng)下多核共用串口的方法,其中,所述步驟C具體包括:

C1、當(dāng)從核處理器使用串口時(shí),主核控制從核使用串口的標(biāo)識(shí)的值為真;

C2、當(dāng)檢測(cè)到從核使用串口的標(biāo)識(shí)的值為真時(shí),主核處理器關(guān)閉主核串口驅(qū)動(dòng),不驅(qū)動(dòng)硬件。

一種非對(duì)稱處理系統(tǒng)下多核共用串口的系統(tǒng),其中,系統(tǒng)包括:

參數(shù)配置模塊,用于主核處理器和從核處理器分別對(duì)串口的通信參數(shù)進(jìn)行配置,并分別設(shè)置主核處理器的串口驅(qū)動(dòng)方式和從核處理器的串口驅(qū)動(dòng)方式;

第一串口驅(qū)動(dòng)模塊,用于主核處理器和從核處理器啟動(dòng)完成后,主核處理器根據(jù)主核處理器串口驅(qū)動(dòng)方式通過(guò)串口下發(fā)信息;

檢測(cè)與控制模塊,用于當(dāng)檢測(cè)到從核處理器的驅(qū)動(dòng)串口使能命令時(shí),主核處理器關(guān)閉主核串口驅(qū)動(dòng);

第二串口驅(qū)動(dòng)模塊,用于從核處理器根據(jù)從核處理器串口驅(qū)動(dòng)方式通過(guò)串口下發(fā)信息。

所述的非對(duì)稱處理系統(tǒng)下多核共用串口的系統(tǒng),其中,所述參數(shù)配置模塊具體包括:

第一串口參數(shù)配置單元,用于主核處理器對(duì)串口的波特率、奇偶校驗(yàn)位、數(shù)據(jù)位、輸入頻率進(jìn)行配置;

第二串口參數(shù)配置單元,用于從核處理器對(duì)串口的波特率、奇偶校驗(yàn)位、數(shù)據(jù)位、輸入頻率進(jìn)行配置。

所述的非對(duì)稱處理系統(tǒng)下多核共用串口的系統(tǒng),其中,所述參數(shù)配置模塊還包括:

第一串口驅(qū)動(dòng)方式設(shè)置單元,用于設(shè)置主核處理器的串口驅(qū)動(dòng)方式為中斷收發(fā)包方式,每次收到或發(fā)送一個(gè)字符發(fā)生一次中斷;

第二串口驅(qū)動(dòng)方式設(shè)置單元,用于設(shè)置從核處理器的串口驅(qū)動(dòng)方式為輪詢方式,通過(guò)查詢從核使用串口的標(biāo)識(shí)的值進(jìn)行輸入或輸出字符。

所述的非對(duì)稱處理系統(tǒng)下多核共用串口的系統(tǒng),其中,所述系統(tǒng)還包括:

預(yù)先設(shè)置模塊,用于預(yù)先設(shè)置一個(gè)從核使用串口的標(biāo)識(shí),當(dāng)允許從核使用串口時(shí),從核使用串口的標(biāo)識(shí)的值為真;當(dāng)不允許從核使用串口時(shí),從核使用串口的標(biāo)識(shí)的值為假。

所述的非對(duì)稱處理系統(tǒng)下多核共用串口的系統(tǒng),其中,所述第一串口驅(qū)動(dòng)模塊具體包括:

第一控制單元,用于當(dāng)從核處理器使用串口時(shí),主核控制從核使用串口的標(biāo)識(shí)的值為真;

第二控制單元,用于當(dāng)檢測(cè)到從核使用串口的標(biāo)識(shí)的值為真時(shí),主核處理器關(guān)閉主核串口驅(qū)動(dòng),不驅(qū)動(dòng)硬件。

本發(fā)明提供了一種非對(duì)稱處理系統(tǒng)下多核共用串口的方法及系統(tǒng),本發(fā)明可以實(shí)現(xiàn)在非對(duì)稱處理系統(tǒng)下,實(shí)現(xiàn)主從核共用一個(gè)串口,主從核的串口驅(qū)動(dòng)互不相干,且不影響系統(tǒng)的穩(wěn)定性,提高了串口的利用效率。

附圖說(shuō)明

圖1為本發(fā)明的一種非對(duì)稱處理系統(tǒng)下多核共用串口的方法的較佳實(shí)施例的流程圖。

圖2為圖1中步驟S100的具體實(shí)施例一的細(xì)化步驟流程圖。

圖3為圖1中步驟S100的具體實(shí)施例二的細(xì)化步驟流程圖。

圖4為圖1中步驟S300的具體實(shí)施例三的細(xì)化步驟流程圖。

圖5為本發(fā)明的一種非對(duì)稱處理系統(tǒng)下多核共用串口的系統(tǒng)的較佳實(shí)施例的功能原理框圖。

具體實(shí)施方式

為使本發(fā)明的目的、技術(shù)方案及效果更加清楚、明確,以下對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

本發(fā)明提供了一種非對(duì)稱處理系統(tǒng)下多核共用串口的方法的較佳實(shí)施例的流程圖,如圖1所示,其中,方法包括:

步驟S100、主核處理器和從核處理器分別對(duì)串口的通信參數(shù)進(jìn)行配置,并分別設(shè)置主核處理器的串口驅(qū)動(dòng)方式和從核處理器的串口驅(qū)動(dòng)方式。

具體實(shí)施時(shí),如圖2所示,步驟S100中主核處理器和從核處理器分別對(duì)串口的通信參數(shù)進(jìn)行配置具體包括:

步驟S111、主核處理器對(duì)串口的波特率、奇偶校驗(yàn)位、數(shù)據(jù)位、輸入頻率進(jìn)行配置;

步驟S112、從核處理器對(duì)串口的波特率、奇偶校驗(yàn)位、數(shù)據(jù)位、輸入頻率進(jìn)行配置。

進(jìn)一步的實(shí)施例中,如圖3所示,步驟S100中分別設(shè)置主核處理器的串口驅(qū)動(dòng)方式和從核處理器的串口驅(qū)動(dòng)方式具體包括:

步驟S121、設(shè)置主核處理器的串口驅(qū)動(dòng)方式為中斷收發(fā)包方式,每次收到或發(fā)送一個(gè)字符發(fā)生一次中斷;

步驟S122、設(shè)置從核處理器的串口驅(qū)動(dòng)方式為輪詢方式,通過(guò)查詢從核使用串口的標(biāo)識(shí)的值進(jìn)行輸入或輸出字符。

具體實(shí)施時(shí),整個(gè)系統(tǒng)上存在一個(gè)物理串口(UART),主核對(duì)串口進(jìn)行完整配置,包括波特率,奇偶校驗(yàn)位,數(shù)據(jù)位,輸入頻率等,主核串口驅(qū)動(dòng)工作方式為中斷收發(fā)包方式,每收到或者發(fā)送一個(gè)字符都會(huì)產(chǎn)生中斷。

從核初始化串口時(shí),不對(duì)串口進(jìn)行任何硬件配置,使用的波特率也與主核配置完全一樣,也不掛載中斷服務(wù)程序,初始化函數(shù)直接返回成功,在tty驅(qū)動(dòng)在設(shè)備節(jié)點(diǎn)中注冊(cè)成功后,調(diào)用ioctl函數(shù)通過(guò)命令SIO_MODE_SET + SIO_MODE_POLL設(shè)置該設(shè)備使用輪詢方式。

進(jìn)一步的實(shí)施例中,步驟S100之前還包括:

步驟S10、預(yù)先設(shè)置一個(gè)從核使用串口的標(biāo)識(shí),當(dāng)允許從核使用串口時(shí),從核使用串口的標(biāo)識(shí)的值為真;當(dāng)不允許從核使用串口時(shí),從核使用串口的標(biāo)識(shí)的值為假。

具體實(shí)施時(shí),從核UART使用串口的標(biāo)識(shí)記為pollPrintFlag,保存在主從核共享內(nèi)存中,主從核均可以訪問(wèn)。當(dāng)pollPrintFlag為真,即pollPrintFlag=enable時(shí),允許從核使用串口,當(dāng)pollPrintFlag為假,即pollPrintFlag=disable時(shí),不允許從核使用串口。當(dāng)主核啟動(dòng)在控制臺(tái)切到從核后啟動(dòng)一個(gè)檢測(cè)任務(wù),用于從核使用完UART后重新回復(fù)驅(qū)動(dòng)并能收發(fā)字符。

步驟S200、主核處理器和從核處理器啟動(dòng)完成后,主核處理器根據(jù)主核處理器串口驅(qū)動(dòng)方式通過(guò)串口下發(fā)信息。

具體實(shí)施時(shí),其中主核處理器和從核處理器啟動(dòng)完成后,主核處理器檢測(cè)pollPrintFlag的值 ,若當(dāng)pollPrintFlag為真,即pollPrintFlag=enable時(shí),從核使用串口,當(dāng)pollPrintFlag為假,即pollPrintFlag=disable時(shí),不允許從核使用串口,同時(shí)為主核處理器使用串口。主核與串口UART的驅(qū)動(dòng)機(jī)制,采用中斷方式收發(fā)字符。主核設(shè)置串口UART驅(qū)動(dòng),包括關(guān)閉與打開中斷、令發(fā)送函數(shù)是否丟棄字符。

步驟S300、當(dāng)檢測(cè)到從核處理器的驅(qū)動(dòng)串口使能命令時(shí),主核處理器關(guān)閉主核串口驅(qū)動(dòng)。

具體實(shí)施時(shí),如圖4所示,步驟S300具體包括:

步驟S301、當(dāng)從核處理器使用串口時(shí),主核控制從核使用串口的標(biāo)識(shí)的值為真;

步驟S302、當(dāng)從核處理器使用串口時(shí),主核控制從核使用串口的標(biāo)識(shí)的值為真。

具體實(shí)施時(shí),當(dāng)主核使用串口時(shí),想要從主核切換到從核控制臺(tái),則在主核控制臺(tái)執(zhí)行命令,設(shè)置 pollPrintFlag=ENABLE,同時(shí)關(guān)閉主核串口收發(fā)中斷并令發(fā)送函數(shù)每次調(diào)用時(shí)直接返回成功,并不驅(qū)動(dòng)硬件。這樣串口收到的報(bào)文都不會(huì)觸發(fā)主核tty接收任務(wù),tty發(fā)送的消息也直接被丟棄了。TTY包括虛擬控制臺(tái),串口以及偽終端設(shè)備。

步驟S400、從核處理器根據(jù)從核處理器串口驅(qū)動(dòng)方式通過(guò)串口下發(fā)信息。

具體實(shí)施時(shí),從核串口輪詢發(fā)送函數(shù)在判斷pollPrintFlag=ENABLE后,tty下發(fā)的信息可以直接驅(qū)動(dòng)寄存器發(fā)送出去,同理輪詢輸入。

從核與UART的驅(qū)動(dòng)機(jī)制,采用輪詢方式收發(fā)字符,從核設(shè)置UART驅(qū)動(dòng),包括輪詢發(fā)送函數(shù)是否丟棄字符,輪詢接收函數(shù)是否可以從寄存器讀取接收字符。

若從核控制臺(tái)切換到主核時(shí),與上述流程基本逆行。主核在判斷pollPrintFlag=DISABLE后,打開串口收發(fā)中斷,發(fā)送函數(shù)也恢復(fù)正常。從核則恢復(fù)到初始狀態(tài)不能輸出。

以上說(shuō)明舉例是以雙核為基礎(chǔ),本發(fā)明同樣適應(yīng)雙核(4核,8核等等)以上的AMP系統(tǒng)。

在示例性實(shí)施例中,裝置可以被一個(gè)或多個(gè)應(yīng)用專用集成電路(ASIC)、數(shù)字信號(hào)處理器(DSP)、數(shù)字信號(hào)處理設(shè)備(DSPD)、可編程邏輯器件(PLD)、現(xiàn)場(chǎng)可編程門陣列(FPGA)、控制器、微控制器、微處理器或其他電子元件實(shí)現(xiàn),用于執(zhí)行上述方法。

在示例性實(shí)施例中,還提供了一種包括指令的非臨時(shí)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),例如包括指令的存儲(chǔ)器,上述指令可由裝置的處理器執(zhí)行以完成上述方法。例如,所述非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是ROM、隨機(jī)存取存儲(chǔ)器(RAM)、CD-ROM、磁帶、軟盤和光數(shù)據(jù)存儲(chǔ)設(shè)備等。

本發(fā)明還提供了一種非對(duì)稱處理系統(tǒng)下多核共用串口的系統(tǒng)的較佳實(shí)施例的功能原理框圖,如圖5所示,系統(tǒng)包括:

參數(shù)配置模塊100,用于主核處理器和從核處理器分別對(duì)串口的通信參數(shù)進(jìn)行配置,并分別設(shè)置主核處理器的串口驅(qū)動(dòng)方式和從核處理器的串口驅(qū)動(dòng)方式;

第一串口驅(qū)動(dòng)模塊200,用于主核處理器和從核處理器啟動(dòng)完成后,主核處理器根據(jù)主核處理器串口驅(qū)動(dòng)方式通過(guò)串口下發(fā)信息;

檢測(cè)與控制模塊300,用于當(dāng)檢測(cè)到從核處理器的驅(qū)動(dòng)串口使能命令時(shí),主核處理器關(guān)閉主核串口驅(qū)動(dòng);

第二串口驅(qū)動(dòng)模塊,用于從核處理器根據(jù)從核處理器串口驅(qū)動(dòng)方式通過(guò)串口下發(fā)信息。

所述的非對(duì)稱處理系統(tǒng)下多核共用串口的系統(tǒng),其中,所述參數(shù)配置模塊具體包括:

第一串口參數(shù)配置單元,用于主核處理器對(duì)串口的波特率、奇偶校驗(yàn)位、數(shù)據(jù)位、輸入頻率進(jìn)行配置;具體如方法實(shí)施例所示。

第二串口參數(shù)配置單元,用于從核處理器對(duì)串口的波特率、奇偶校驗(yàn)位、數(shù)據(jù)位、輸入頻率進(jìn)行配置;具體如方法實(shí)施例所示。

所述的非對(duì)稱處理系統(tǒng)下多核共用串口的系統(tǒng),其中,所述參數(shù)配置模塊還包括:

第一串口驅(qū)動(dòng)方式設(shè)置單元,用于設(shè)置主核處理器的串口驅(qū)動(dòng)方式為中斷收發(fā)包方式,每次收到或發(fā)送一個(gè)字符發(fā)生一次中斷;具體如方法實(shí)施例所示。

第二串口驅(qū)動(dòng)方式設(shè)置單元,用于設(shè)置從核處理器的串口驅(qū)動(dòng)方式為輪詢方式,通過(guò)查詢從核使用串口的標(biāo)識(shí)的值進(jìn)行輸入或輸出字符;具體如方法實(shí)施例所示。

所述的非對(duì)稱處理系統(tǒng)下多核共用串口的系統(tǒng),其中,所述系統(tǒng)還包括:

預(yù)先設(shè)置模塊,用于預(yù)先設(shè)置一個(gè)從核使用串口的標(biāo)識(shí),當(dāng)允許從核使用串口時(shí),從核使用串口的標(biāo)識(shí)的值為真;當(dāng)不允許從核使用串口時(shí),從核使用串口的標(biāo)識(shí)的值為假;具體如方法實(shí)施例所示。

所述的非對(duì)稱處理系統(tǒng)下多核共用串口的系統(tǒng),其中,所述第一串口驅(qū)動(dòng)模塊具體包括:

第一控制單元,用于當(dāng)從核處理器使用串口時(shí),主核控制從核使用串口的標(biāo)識(shí)的值為真;具體如方法實(shí)施例所示。

第二控制單元,用于當(dāng)檢測(cè)到從核使用串口的標(biāo)識(shí)的值為真時(shí),主核處理器關(guān)閉主核串口驅(qū)動(dòng),不驅(qū)動(dòng)硬件;具體如方法實(shí)施例所示。

綜上所述,本發(fā)明提出了一種非對(duì)稱處理系統(tǒng)下多核共用串口的方法及系統(tǒng),方法包括:主核處理器和從核處理器分別對(duì)串口的通信參數(shù)進(jìn)行配置,并分別設(shè)置主核處理器的串口驅(qū)動(dòng)方式和從核處理器的串口驅(qū)動(dòng)方式;主核處理器和從核處理器啟動(dòng)完成后,主核處理器根據(jù)主核處理器串口驅(qū)動(dòng)方式通過(guò)串口下發(fā)信息;當(dāng)檢測(cè)到從核處理器的驅(qū)動(dòng)串口使能命令時(shí),主核處理器關(guān)閉主核串口驅(qū)動(dòng);從核處理器根據(jù)從核處理器串口驅(qū)動(dòng)方式通過(guò)串口下發(fā)信息。本發(fā)明可以實(shí)現(xiàn)在非對(duì)稱處理系統(tǒng)下,實(shí)現(xiàn)主從核共用一個(gè)串口,主從核的串口驅(qū)動(dòng)互不相干,且不影響系統(tǒng)的穩(wěn)定性,提高了串口的利用效率。

應(yīng)當(dāng)理解的是,本發(fā)明的應(yīng)用不限于上述的舉例,對(duì)本領(lǐng)域普通技術(shù)人員來(lái)說(shuō),可以根據(jù)上述說(shuō)明加以改進(jìn)或變換,所有這些改進(jìn)和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護(hù)范圍。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
襄樊市| 晋州市| 安顺市| 阳朔县| 泸州市| 满洲里市| 望奎县| 托克托县| 措美县| 沂源县| 无棣县| 长岛县| 外汇| 长宁区| 东乡| 海口市| 彭泽县| 南平市| 青岛市| 龙口市| 梅河口市| 突泉县| 固阳县| 南开区| 新宾| 嘉义县| 邵东县| 永仁县| 贞丰县| 苍溪县| 陵川县| 丰顺县| 虹口区| 三明市| 弥渡县| 横峰县| 左贡县| 鹤壁市| 河北区| 秦皇岛市| 育儿|