999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

VxWorks下龍芯3A中斷控制技術的研究

2017-07-25 20:47:18徐騫
現(xiàn)代電子技術 2017年14期

徐騫

摘 要: 中斷控制是嵌入式操作系統(tǒng)VxWorks正常運行的基礎,是其具有高實時性的保障。針對VxWorks系統(tǒng)下中斷控制驅動開發(fā)難度大、應用廣等特點,首次提出了VxWorks系統(tǒng)中斷控制驅動分層模型。基于該模型提出了VxWorks下中斷控制驅動軟件的設計方法,并基于該方法實現(xiàn)了VxWorks下國產(chǎn)龍芯3A處理器中斷控制驅動軟件的開發(fā)。最后提出一種優(yōu)化龍芯3A中斷控制性能的方法,大大縮短了中斷響應時間,提高了系統(tǒng)的性能。

關鍵詞: 中斷控制; VxWorks; 龍芯3A; 驅動軟件

中圖分類號: TN876?34; TP311.1 文獻標識碼: A 文章編號: 1004?373X(2017)14?0036?04

Abstract: Interrupt control is the base of normal running of the embedded operating system VxWorks and is a safeguard of high real?time performance. A drive hierarchical model of interrupt control on VxWorks is proposed aiming at the characteristics that the drive development of interrupt control on the embedded operating system VxWorks has great difficulty and its wide application. According to this model, a design method of interrupt control drive software based on VxWorks is put forward. The interrupt control drive software of Loongson 3A have was developed successfully with the method. A method to optimize the Loongson 3A interrupt control performance is presented. It greatly shortens the interrupt response time, and improves the performance of the system.

Keywords: interrupt control; VxWorks; Loongson 3A; drive software

VxWorks操作系統(tǒng)是風河公司推出的一種嵌入式實時操作系統(tǒng), 以其高性能、高可靠性、高實時性等特點成為實時操作系統(tǒng)中最具特色的系統(tǒng)之一。其廣泛地應用在通信、軍事、航空、航天等高端技術及實時性、擴展性要求極高的領域中[1]。龍芯系列處理器芯片是龍芯中科技術有限公司研發(fā)的具有自主知識產(chǎn)權的處理器芯片,產(chǎn)品包括龍芯1號、龍芯2號和龍芯3號三個系列[2]。龍芯3A處理器是龍芯3號處理器的第一款產(chǎn)品,主要面向高性能計算機、服務器和高端桌面應用,是一款實現(xiàn)64位MIPS Ⅲ指令集的高性能四核處理器芯片,片內(nèi)集成了HT控制器、PCI/PCIX等接口,最高工作主頻[3]可以達到1 GHz。VxWorks作為一個實時嵌入式操作系統(tǒng),通常采用中斷的方式來滿足系統(tǒng)實時性的要求。因此,中斷控制驅動的實現(xiàn)對于VxWorks操作系統(tǒng)的開發(fā)是至關重要的[4]。本文在研究VxWorks系統(tǒng)中斷控制技術的基礎之上,描述了VxWorks下龍芯3A中斷控制驅動的設計方法和實現(xiàn)過程,并對其中斷控制性能進行了優(yōu)化。

1 龍芯3A的中斷控制

龍芯3A的中斷通路示意圖如圖1所示。南橋的中斷控制器在接收到外部設備的中斷申請后,發(fā)出中斷請求,經(jīng)過PCIE根控制器轉化后發(fā)送到HT總線上,然后被HT控制器得知,HT控制器根據(jù)接收到的中斷信息來設置自己的中斷狀態(tài)寄存器,之后按照既定的配置發(fā)出中斷信號至CPU的中斷路由配置模塊,最后按照中斷路由模塊的設置將中斷信號送到某個CPU核上[5]。

2 VxWorks下的中斷控制

2.1 中斷控制驅動分層模型

VxWorks下中斷控制有一個層次的劃分,一些中斷控制器的輸入是其他中斷控制器的輸出,因此可以將中斷控制驅動抽象為三層,具體情況如圖2所示。

圖2中,第一層為CPU指定的中斷控制驅動,與CPU的體系架構密切相關,主要包括CPU一級與中斷相關的配置,如中斷路由等;第二層中斷控制器直接與第一層CPU中斷路由模塊相連,并作為其中斷輸入,最常見的如8259中斷控制器[5];第三層中斷控制作為第二層的中斷輸入,一般與外部設備密切相關,主要實現(xiàn)了中斷服務程序的掛接和中斷的響應處理,如傳統(tǒng)的PCI設備中斷控制就屬于該層[6]。

2.2 中斷控制驅動設計方法

基于VxWorks下中斷控制驅動分層模型,本文提出了VxWorks下中斷控制驅動的設計方法,主要包括中斷路由配置、初始化中斷控制器、掛接中斷服務程序和中斷響應處理四個部分,具體流程如圖3所示。

3 龍芯3A中斷控制驅動的實現(xiàn)

根據(jù)VxWorks下中斷控制驅動的設計方法,可以將龍芯3A中斷控制驅動的實現(xiàn)主要分為四個步驟,配置中斷路由、初始化中斷控制器、掛接中斷程序以及中斷響應處理。

3.1 配置中斷路由

龍芯3A下通過配置中斷路由模塊來確定中斷信號最終分配到哪個CPU核上[7?8],中斷路由模塊示意圖如圖4所示。

圖4中,中斷路由配置模塊有32個外部中斷源,以統(tǒng)一方式進行管理。龍芯3A集成了4個處理器核,任意一個中斷源都可以通過軟件配置選擇期望中斷的目標處理器核,進一步中斷源可以選擇路由到處理器核4個中斷INT0~INT3中的任意一個,即圖4所示的CORE0~CORE3的IP0~IP3。在32個中斷源中,最重要的是與HT總線相關的中斷源,龍芯3A下絕大部分外部中斷都是通過HT中斷引腳輸入至CPU,通過設置相關的中斷路由寄存器可以對這些中斷源進行路由配置,部分相關代碼如下:

STATUS sysIntRouteSet()

{ /*將HT0相關中斷路由至CPU CORE0 INT1*/

MIPS_SB64 _IO_base_regs_addr(HT0_INT0_ADDR,0x21);

MIPS_SB64 _IO_base_regs_addr(HT0_INT1_ADDR,0x21);

/*將HT1相關中斷路由至CPU CORE0 INT1*/

MIPS_SB64 _IO_base_regs_addr(HT1_INT0_ADDR,0x21);

MIPS_SB64 _IO_base_regs_addr(HT1_INT1_ADDR,0x21);

…}

3.2 初始化中斷控制器

龍芯3A下,中斷控制器位于南橋上,默認配置為8259模式,初始化中斷控制器主要包括設置中斷控制器和使能中斷控制器兩個部分。

3.2.1 設置中斷控制器

龍芯3A中斷控制器可用的中斷輸入有8個,INTA#~

INTH#,輸出的中斷號為irq0~irq15,每個中斷輸入與輸出中斷號的映射關系可以通過設置相關寄存器來完成,如圖5所示。

圖5中,可以先往0xC00寫入一個值表示配置哪個中斷輸入,然后寫0xC01表示將中斷輸入映射至哪個irq號。例如要把INTC#對應的中斷號設置為irq6,則操作為:先往0xC00寫入2,再往0xC01寫入1即可。

3.2.2 使能中斷控制器

中斷配置寄存器都是以位的形式對相應的中斷線進行控制。中斷控制器使能的配置主要有三個寄存器:Intenset,Intenclr和Inten。Intenset設置中斷使能,Intenset寄存器寫1的位對應的中斷被使能;Intenclr清除中斷使能,Intenclr寄存器寫1的位對應的中斷被清除;Inten寄存器讀取當前各中斷使能的情況。

3.3 掛接中斷服務程序

VxWorks系統(tǒng)下,需要實現(xiàn)類函數(shù)func{vxbIntCtlrConnect}為硬件配置指定的中斷并搭接相應的中斷服務程序以及中斷輸入,該函數(shù)主要通過調(diào)用系統(tǒng)函數(shù)intCtrlISRAdd()完成相關工作[9]。龍芯3A中斷控制驅動中實現(xiàn)的類函數(shù)名為vxbMipsSbIntCtlrConnect,其部分代碼如下:

LOCAL STATUS vxbMipsSbIntCtlrConnect()

{ …

/* 獲取中斷輸入并確認其有效 */

if(ERROR == intCtlrPinFind(pDev,index,pIntCtlr,&isrHandle))

return (ERROR);

/*為指定的中斷分配中斷服務程序和參數(shù)*/

if (intCtlrISRAdd(&pVxbPMipsSbIntCtlrDrvCtrl?>isrHandle, inputPin,pIsr, pArg) != OK)

return (ERROR);

… }

3.4 中斷響應處理

龍芯3A處理中斷的流程,從外部中斷請求到內(nèi)核軟件對中斷的處理,其過程都是一樣的,如圖6所示。

中斷發(fā)生時,CPU會設置Cause寄存器的Excode域及相關的IP位[10]。進而進入軟件處理過程,軟件通過查詢Excode域來確定是哪一種類型的異常,并選擇使用何種異常處理例程。如果是外部硬件中斷,就會進入相應的中斷分發(fā)函數(shù)。中斷分發(fā)函數(shù)再根據(jù)Cause寄存器的IP位來進行一級中斷分發(fā),然后再根據(jù)中斷號的位域來進行二次分發(fā),最后執(zhí)行具體的中斷操作處理程序[11]。

4 驅動測試與優(yōu)化

4.1 驅動測試

基于龍芯3A的硬件平臺,對中斷控制驅動進行測試,能夠成功運行VxWorks系統(tǒng),如圖7所示。

4.2 驅動優(yōu)化

在驅動開發(fā)的設置中斷控制器環(huán)節(jié),默認配置情況下,龍芯3A平臺的設備中斷輸入與中斷號的映射關系如表1所示。

從表1中可以看出,中斷號irq6對應的中斷輸入過于集中,即掛接在中斷輸入INTC上的設備過多,這樣會導致系統(tǒng)中斷響應的時間過長,從而影響系統(tǒng)的性能。可以在驅動軟件設置控制器的環(huán)節(jié)對其進行優(yōu)化,將其中的USB設備包括OHCI和EHCI進行分流,將這些設備映射到其他中斷號上。修改后的軟件經(jīng)過測試,系統(tǒng)的中斷響應時間大大縮短,性能顯著提升,測試結果如表2所示。

5 結 語

本文提出一種VxWorks系統(tǒng)中斷控制驅動分層模型,基于該模型給出了VxWorks下中斷控制驅動軟件的設計方法,并通過該方法實現(xiàn)了VxWorks下國產(chǎn)龍芯3A處理器中斷控制驅動軟件的開發(fā)。另外,本文還提出了一種優(yōu)化VxWorks下龍芯3A中斷控制性能的方法,通過該方法可以大大縮短系統(tǒng)中斷響應時間,提高系統(tǒng)的性能。目前,VxWorks下龍芯3A中斷控制驅動軟件已成功應用于某通信系統(tǒng)項目中,在應用的過程中,驅動程序工作穩(wěn)定,性能可靠,滿足實際應用的需求。

參考文獻

[1] 陳懷民,王哲,程鵬飛,等.VxWorks下設備驅動程序開發(fā)技術研究[J].現(xiàn)代電子技術,2015,38(10):38?41.

[2] HU Weiwu,ZHANG Fuxin,LI Zusong. Microarchitecture of the Godson?2 processor [J]. Journal of computer science and technology,2005, 20(2): 243?249.

[3] 中科院計算技術研究所.龍芯3A處理器數(shù)據(jù)手冊[M].北京:龍芯中科技術服務中心有限公司,2010.

[4] 王迪.基于X86體系結構VxWorksSMP調(diào)度和中斷機制研究與優(yōu)化[D].長沙:國防科技大學,2009.

[5] 李祖松,許先超,胡偉武,等.龍芯2號處理器的同時多線程設計[J].計算機學報,2009,32(11):2265?2273.

[6] 徐立松,于淼,李佩玥,等.基于VxWorks的VME從板驅動設計與實現(xiàn)[J].現(xiàn)代電子技術,2013,36(6):79?82.

[7] 金浩,韓江洪,李陽銘.基于ARM的嵌入式系統(tǒng)中斷處理機制研究[J].現(xiàn)代電子技術,2005,28(22):1?3.

[8] 周啟平,張揚.VxWorks下設備驅動程序及BSP開發(fā)指南[M].北京:中國電力出版社,2004.

[9] 付月生,王麗.基于VxBus的驅動程序架構分析[J].計算技術與自動化,2012,31(2):98?102.

[10] Wind River. VxWorks device driver developer′s guide Vlolume2 [M]. US: Wind River, 2008.

[11] Wind River. VxWorks architecture supplement, 6.7 [M]. US: Wind River, 2008.

主站蜘蛛池模板: 亚洲中文字幕久久无码精品A| 国产在线视频二区| 欧美中文字幕第一页线路一| 国产永久免费视频m3u8| 国产精品黑色丝袜的老师| 国产v精品成人免费视频71pao| 在线观看亚洲精品福利片| 亚洲综合国产一区二区三区| 国产免费网址| 99久久这里只精品麻豆| 久久久久夜色精品波多野结衣| 久久超级碰| 成人小视频在线观看免费| 全裸无码专区| 国内精品视频在线| 亚洲国产天堂久久综合226114| 99久久精品免费视频| 亚洲精品无码久久久久苍井空| 亚洲天堂日韩av电影| AV不卡无码免费一区二区三区| 欧美午夜视频| 在线免费亚洲无码视频| 国产极品粉嫩小泬免费看| 99在线小视频| 国产成年无码AⅤ片在线| 亚洲免费三区| 日韩在线永久免费播放| 亚洲欧美成人| 国产网站黄| 国产一级毛片网站| 亚洲无码视频喷水| 国产国语一级毛片| 亚洲欧美日韩成人在线| 久久精品视频一| 国产91在线|日本| 国产成人成人一区二区| 免费一级无码在线网站| 中文毛片无遮挡播放免费| 亚洲欧美成人影院| 国产网站免费| 2022国产无码在线| 手机在线免费毛片| 国产亚洲日韩av在线| 日韩国产无码一区| 色欲色欲久久综合网| 精品无码视频在线观看| 亚洲精品桃花岛av在线| 免费看久久精品99| 欧美日韩中文国产| 亚洲视频在线观看免费视频| 亚洲—日韩aV在线| 国产毛片不卡| 五月婷婷综合网| 国产精品自拍露脸视频 | 亚洲v日韩v欧美在线观看| 精品综合久久久久久97超人| 另类专区亚洲| 九九九久久国产精品| 国产极品粉嫩小泬免费看| 欧美一区二区人人喊爽| 偷拍久久网| 国产精品男人的天堂| 亚洲性视频网站| 欧美一级黄片一区2区| 国产一级毛片网站| 丰满人妻中出白浆| 99视频在线免费观看| 激情五月婷婷综合网| 成人在线天堂| 97狠狠操| 色婷婷综合激情视频免费看| 中文字幕亚洲专区第19页| 影音先锋丝袜制服| 免费国产高清视频| 国产成人免费| 国内精品久久久久久久久久影视| 超碰91免费人妻| 亚洲精品大秀视频| 久草热视频在线| 久久性妇女精品免费| 欧美亚洲第一页| 亚洲精品福利视频|