• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于龍芯1E1F航天應(yīng)用平臺與VxWorks系統(tǒng)的VxBus型驅(qū)動設(shè)計

    2018-05-23 00:45:49,,,,
    計算機測量與控制 2018年5期
    關(guān)鍵詞:服務(wù)程序龍芯中斷

    , ,,,

    (上海微小衛(wèi)星工程中心,上海 201210)

    0 引言

    龍芯1E和1F芯片是龍芯中科科技有限公司研制的具有自主知識產(chǎn)權(quán)的高性能32位抗輻射芯片,打破了國外對我國航天級高性能芯片的封鎖。龍芯1E是一個高性能應(yīng)用處理器SOC,以龍芯1號處理器為運算中心,提供了通用的處理器部件和對外接口,包含中斷控制器、定時器、RS232串口控制器、浮點處理器、PCI和存儲器接口(存儲器接口支持SDRAM和FLASH ROM)等。龍芯1E芯片的外部時鐘頻率不低于66 MHz,功耗3 W。龍芯1F芯片是龍芯1E芯片的配套IO橋芯片,集成了航天領(lǐng)域常用的遙測遙控功能接口和外圍接口,時鐘33 MHz,功耗1 W,支持橋片模式和自主模式。龍芯1F芯片的橋片模式分為3種,即PCI總線設(shè)備模式、ISA總線設(shè)備模式和1553B總線簡易終端設(shè)備模式。龍芯1E和龍芯1F芯片的抗輻射特性為抗總劑量不小于 1×103Gy(Si),單粒子鎖定(SEL)閾值不小于 75MeV·cm2/mg,單粒子翻轉(zhuǎn)(SEU)閾值不小于 37MeV·cm2/mg 或 IGSO 軌道翻轉(zhuǎn)率小于 10-10次/位天[1-2]。

    VxWorks系統(tǒng)由于其優(yōu)秀的實時性和可靠性,在航天領(lǐng)域得到了廣泛的應(yīng)用。VxWorks 6.2之后引入了新的基于VxBus的設(shè)備驅(qū)動開發(fā)模式。與傳統(tǒng)的設(shè)備驅(qū)動程序高度耦合在板級支持包(BSP)中相比,基于VxBus的設(shè)備驅(qū)動開發(fā)可以使BSP的開發(fā)與設(shè)備驅(qū)動的開發(fā)相對分離,使得這兩部分的開發(fā)工作可以并行開展。提高了設(shè)備驅(qū)動開發(fā)效率,使得設(shè)備驅(qū)動程序開發(fā)更加規(guī)范化,結(jié)構(gòu)化,進一步提高了軟件開發(fā)的質(zhì)量和可靠性,并且降低了開發(fā)和測試成本[3]。

    由于龍芯芯片在商用領(lǐng)域推出較多,在航天領(lǐng)域推出較少,目前對龍芯應(yīng)用技術(shù)的研究大多集中在商用領(lǐng)域,在航天領(lǐng)域的應(yīng)用技術(shù)的研究尚處于初始階段[4]。在航天領(lǐng)域龍芯的應(yīng)用介紹較少,并且研究內(nèi)容主要著眼于系統(tǒng)引導(dǎo),軟件更新[5]和傳統(tǒng)的VxWorks BSP移植設(shè)計等方面[6-7],對如何針對VxWorks新推出的VxBus型驅(qū)動進行龍芯應(yīng)用的設(shè)計介紹較少。

    1 VxBus設(shè)備驅(qū)動分析

    VxWorks系統(tǒng)下VxBus型驅(qū)動具有設(shè)備可配置以及驅(qū)動使用界面化操作的特點。如圖1所示,進行VxBus驅(qū)動開發(fā)一般要提供驅(qū)動頭文件,驅(qū)動源代碼文件,驅(qū)動說明文件,Makefile編譯文件,cdf驅(qū)動配置文件,dr驅(qū)動注冊文件以及dc驅(qū)動注冊文件。這幾個文件存放的位置各不相同,驅(qū)動說明文件,驅(qū)動源代碼文件和Makefile編譯配置文件存放在“C: WindRivervxworks-6.8 arget3rdpartyvendorName driveName”路徑下。其中“C: WindRiver”為VxWorks開發(fā)環(huán)境的安裝路徑,vendorName是自定義的驅(qū)動供應(yīng)商的名稱,driveName是自定義的驅(qū)動的名稱。一個驅(qū)動供應(yīng)商可以對應(yīng)多個驅(qū)動,多個驅(qū)動都以驅(qū)動文件夾的方式存放在供應(yīng)商文件夾下。cdf配置文件存放在“C:WindRivervxworks-6.8 argetconfigcomps vxWorks”路徑下,這個目錄下是專門用來存放驅(qū)動配置文件。dc和dr配置文件存放在C:WindRivervxworks-6.8 argetconfigcompssrchwif路徑下,這個目錄下是專門用來存放VxBus型驅(qū)動的注冊文件。

    VxWorks系統(tǒng)初始化時,首先在sysHwInit()函數(shù)中調(diào)用hardWareInterFaceInit()函數(shù),該函數(shù)完成VxBus型驅(qū)動的注冊,并調(diào)用各個VxBus型驅(qū)動的xxxInit()函數(shù),執(zhí)行各個驅(qū)動的第一次初始化。在第一次初始化過程中,VxWorks系統(tǒng)為每個VxBus型驅(qū)動設(shè)備分配了內(nèi)存空間,并且連接了供應(yīng)用層調(diào)用的驅(qū)動方法,從BSP的硬件設(shè)備定義文件hwconf.c中獲取每個硬件設(shè)備的驅(qū)動參數(shù)。然后在sysHwInit2()函數(shù)中調(diào)用vxbDevInit()函數(shù),在vxbDevInit ()函數(shù)中調(diào)用各個VxBus型驅(qū)動的xxxInit2()函數(shù),執(zhí)行各個驅(qū)動的第二次初始化,進行了VxBus型驅(qū)動的中斷服務(wù)函數(shù)的連接和使能。接著建立一個任務(wù)vxbDevConnect,該任務(wù)執(zhí)行了每個VxBus型驅(qū)動的xxxConnect()函數(shù),在該函數(shù)中將執(zhí)行一些額外的比較費時,但是不影響整個系統(tǒng)初始化的初始化操作[8-9]。整個VxBus驅(qū)動的初始化流程如下圖2所示。

    圖1 VxBus驅(qū)動組成圖

    圖2 VxBus驅(qū)動初始化流程圖

    2 VxBus設(shè)備驅(qū)動程序設(shè)計

    對于VxWorks系統(tǒng)的基本運行,一般需要提供3種必需的驅(qū)動:時鐘驅(qū)動,串口驅(qū)動和中斷控制驅(qū)動。時鐘驅(qū)動用來驅(qū)動VxWorks系統(tǒng)運行,如任務(wù)調(diào)度,定時控制等,串口驅(qū)動一般用作調(diào)試時輸出日志信息,輸入控制命令等,中斷控制驅(qū)動用作在系統(tǒng)發(fā)生中斷時進行中斷響應(yīng)。

    1)串口驅(qū)動設(shè)計。

    龍芯1E芯片上提供了2個RS232串口,串口控制器與NS16550串口控制器在寄存器接口上兼容,并且VxWorks開發(fā)環(huán)境中已經(jīng)提供了基于VxBus型NS16550串口控制驅(qū)動的參考源代碼,源代碼文件為vxbNs16550Sio.c。源代碼文件不需要修改,只要在BSP的硬件配置文件hwconf.c中配置各個串口的寄存器的起始地址,波特率,時鐘等即可。關(guān)鍵代碼如下。

    首先定義兩個串口設(shè)備的相關(guān)驅(qū)動參數(shù):

    define LSN_UART_DEFAULT_BAUD 115200

    struct hcfResource ns16550Dev0Resources[] = {

    { "regBase", HCF_RES_INT, {(void *)LS1E_UART0_BASE} },

    { "baudRate", HCF_RES_INT, { (void *)LSN_UART_DEFAULT_BAUD }},

    { "clkFreq", HCF_RES_INT, {(void *)BAUD_CLK_FREQ} },

    { "regInterval", HCF_RES_INT, {(void *)UART_DELTA} },

    };

    define ns16550Dev0Num NELEMENTS(ns16550Dev0Re-sources)

    struct hcfResource ns16550Dev1Resources[] = {

    { "regBase", HCF_RES_INT, {(void *)LS1E_UART1_BASE} },

    { "baudRate", HCF_RES_INT, { (void *)LSN_UART_DEFAULT_BAUD }},

    { "clkFreq", HCF_RES_INT, {(void *)BAUD_CLK_FREQ} },

    { "regInterval", HCF_RES_INT, {(void *)UART_DELTA} },

    };

    define ns16550Dev1Num NELEMENTS(ns16550Dev1Re-sources)

    然后在設(shè)備列表中定義2個串口設(shè)備:

    {"ns16550", 0, VXB_BUSID_PLB, 0, ns16550Dev0Num, ns16550Dev0Resources },

    {"ns16550", 1, VXB_BUSID_PLB, 0, ns16550Dev1Num, ns16550Dev1Resources },

    2)時鐘驅(qū)動設(shè)計。

    龍芯1E1F開發(fā)板上使用的時鐘頻率為33 MHz,時鐘驅(qū)動可以使用VxWorks開發(fā)環(huán)境中提供的MIPS R4K時鐘驅(qū)動,源文件為vxbMipsR4KTimer.c。需要在BSP的硬件配置文件hwconf.c中定義最小時鐘,最大時鐘,cpu頻率等時鐘驅(qū)動參數(shù)。關(guān)鍵代碼如下。

    首先定義時鐘驅(qū)動的相關(guān)驅(qū)動參數(shù):

    struct hcfResource r4KTimerDevResources[] =

    {

    {"regBase", HCF_RES_INT, {(void *)0} },

    {"minClkRate", HCF_RES_INT, {(void *)SYS_CLK_RATE_MIN} },

    {"maxClkRate", HCF_RES_INT, {(void *)SYS_CLK_RATE_MAX} },

    {"cpuClkRate", HCF_RES_INT, {(void *) 33000000} }

    };

    define r4TimerDevNum NELEMENTS(r4KTimerDevResources)

    然后在設(shè)備列表中定義時鐘設(shè)備:

    {"r4KTimerDev",0,VXB_BUSID_PLB,0,r4TimerDevNum,r4KTimerDevResources},

    3)中斷控制驅(qū)動設(shè)計。

    根據(jù)龍芯1E1F平臺的中斷控制器的特點,中斷控制驅(qū)動可以分層設(shè)計[10],將中斷驅(qū)動分為3個層次,如圖3所示。第1層為MIPS中斷控制,共8個中斷類型,第2層為龍芯1E中斷控制,共32個中斷類型,第3層為龍芯1F中斷控制,共32個中斷類型。其中第2層龍芯1E的中斷是作為第1層MIPS中斷的第2種中斷類型進行連接,第3層龍芯1F中斷是作為第2層龍芯1E的第17種中斷類型進行連接。

    圖3中僅列出了本文涉及的串口中斷,時鐘中斷,龍芯1E中斷,龍芯1F中斷,SM1553B中斷,其他中斷類型可以參考龍芯芯片數(shù)據(jù)手冊[11]。

    圖3 龍芯1E1F中斷分層圖

    a)對MIPS中斷控制的驅(qū)動可以使用VxWorks提供的mipsIntCtlr驅(qū)動,源文件為vxbMipsIntCtlr.c。在BSP的hwconf.c文件中配置MIPS驅(qū)動中各個引腳中斷所屬的中斷服務(wù)設(shè)備。關(guān)鍵代碼如下。

    首先定義MIPS中斷控制設(shè)備的相關(guān)驅(qū)動參數(shù):

    const struct intrCtlrInputs mipsIntCtlr0Inputs[] = {

    /* pin, driver, unit, index */

    /* IPI interrupts from IPI controller */

    {0, "legacy", 0, 0},

    {1, "legacy", 0, 0},

    {2, "LS1EIntCtlr", 0, 0},

    {7, "r4KTimerDev", 0, 0},

    };

    const struct hcfResource cpu0Resources[] = {

    { "regBase", HCF_RES_INT, {(void *)TRUE} },

    { "input", HCF_RES_ADDR, {(void *)&mipsIntCtlr0Inputs[0]} },

    { "inputTableSize", HCF_RES_INT, {(void *)NELEMENTS(mipsIntCtlr0Inputs)}}

    };

    define cpu0Num NELEMENTS(cpu0Resources)

    然后在設(shè)備列表中定義MIPS中斷控制器設(shè)備:

    { "mipsIntCtlr", 0, VXB_BUSID_PLB, 0, cpu0Num, cpu0Resources },

    b)對龍芯1E中斷控制的驅(qū)動需要編寫新的VxBus類型的驅(qū)動。中斷程序設(shè)計整體結(jié)構(gòu)上參考MIPS中斷控制程序。對于中斷服務(wù)程序需要進行更改,在中斷服務(wù)程序中,需要首先讀取龍芯1E的中斷狀態(tài)寄存器,然后清除龍芯1E的中斷狀態(tài),防止重復(fù)產(chǎn)生中斷,接著再根據(jù)獲取的龍芯1E的中斷狀態(tài)依次調(diào)用所有發(fā)生中斷的子服務(wù)程序。中斷服務(wù)程序關(guān)鍵代碼如下:

    /*獲取中斷狀態(tài)*/

    vxbMipsLsnIntLevelGet (pInst, &ints);

    /*清除中斷*/

    MIPS_SW32(LS1E_INT_BASE+ LS1E_INT_ CLR, ints);

    /*調(diào)用子服務(wù)程序*/

    if (ints != (UINT32)0)

    {

    for (i = 0;i < LS1E_INT_INPUTS && ints != 0;i++,ints >>= 1)

    {

    if ((ints & 0x01) != 0)

    {

    VXB_INTCTLR_ISR_CALL(&pDrvCtrl->isrHandle, I +pInst->unitNumber * 32);

    }

    }

    }

    在BSP的hwconf.c文件中龍芯1E中斷控制器驅(qū)動的配置為:

    定義龍芯1E中斷控制器的驅(qū)動參數(shù):

    const struct intrCtlrInputs ls1EIntCtlrInputs0[] = {

    /* pin, driver, unit, index */

    /* interrupts inputs into cpu */

    {11, "ns16550", 0, 0 },

    {12, "ns16550", 1, 0 },

    {17, "LS1FIntCtlr", 0, 0 },

    };

    const struct hcfResource ls1EIntCtlrResources0[] = {

    { "regBase", HCF_RES_INT, {(void *)TRUE} },

    { "input", HCF_RES_ADDR, {(void *)&ls1EIntCtlrInputs0[0]} },

    { "inputTableSize", HCF_RES_INT, {(void *)NELEMENTS(ls1EIntCtlrInputs0)}},

    };

    define ls1EIntCtlrNum0 NELEMENTS(ls1EIntCtlrResources0)

    在設(shè)備列表中定義龍芯1E中斷控制器設(shè)備:

    {"LS1EIntCtlr",0,VXB_BUSID_PLB,0, ls1EIntCtlrNum0, ls1EIntCtlrResources0 },

    c)對龍芯1F中斷控制器的驅(qū)動需要編寫新的VxBus類型的驅(qū)動。中斷程序整體結(jié)構(gòu)上參考龍芯1E中斷控制的程序。同樣對于中斷服務(wù)程序需要進行更改。在中斷服務(wù)程序中,需要首先讀取龍芯1F的中斷狀態(tài)寄存器,接著再根據(jù)獲取的龍芯1F的中斷狀態(tài)調(diào)用所有發(fā)生中斷的子服務(wù)程序。與龍芯1E中斷服務(wù)程序不同,在龍芯1F的中斷服務(wù)程序中不需要進行中斷清除,某個引腳的中斷狀態(tài)的清除在被調(diào)用的中斷子服務(wù)程序中單獨進行。中斷服務(wù)程序關(guān)鍵代碼如下:

    /*獲取中斷狀態(tài)*/

    vxbMipsLsn_1fIntLevelGet (pInst, &ints);

    /*調(diào)用子服務(wù)程序*/

    if (ints != (UINT32)0)

    {

    for (i = 0;i < (LS1F_INT_INPUTS) && ints != 0;i++,ints >>= 1)

    {

    if ((ints & 0x01) != 0)

    {

    VXB_INTCTLR_ISR_CALL(&pDrvCtrl->isrHandle,i);

    }

    }

    }

    在BSP的hwconf.c文件中龍芯1F中斷控制器驅(qū)動的配置為:

    定義龍芯1F中斷控制器的驅(qū)動參數(shù):

    const struct intrCtlrInputs ls1FIntCtlrInputs0[] =

    {

    /* pin, driver, unit, index */

    {31,"LS1F_sm1553b", 0, 0},

    };

    const struct hcfResource ls1FIntCtlrResources0[] = {

    { "regBase", HCF_RES_INT, {(void *)TRUE} },

    { "input", HCF_RES_ADDR, {(void *)& ls1FIntCtlrInputs0[0]} },

    { "inputTableSize", HCF_RES_INT, {(void *)NELEMENTS(ls1FIntCtlrInputs0)}},

    };

    define ls1FIntCtlrNum0 NELEMENTS(ls1FIntCtlrResources0)

    在設(shè)備列表中定義龍芯1F中斷控制器設(shè)備:

    {"LS1FIntCtlr",0,VXB_BUSID_PLB,0,ls1FIntCtlrNum0, ls1FIntCtlrResources0},

    4)龍芯1F芯片的智能1553B功能驅(qū)動設(shè)計。

    首先在“C:WindRivervxworks-6.8 arget 3rdpartyvendorName”路徑下建立一個新的文件夾用來存放驅(qū)動文件,文件夾名稱為LS1FSM1553B,然后在該文件夾下分別建立vxbLS1F_sm1553b.c,40vxbLS1F_sm1553b.cdf,vxbLS1F_sm1553b.dc,vxbLS1F_sm1553b.dr,Makefile,README等幾個文件。其中vxbLS1F_sm1553b.c文件中包含了驅(qū)動的實現(xiàn)代碼,是驅(qū)動的主要文件。40vxbLS1F_sm1553b.cdf包含了用于vxWorks工程進行圖形化配置1553B驅(qū)動的描述信息。vxbLS1F_sm1553b.dc,vxbLS1F_sm1553b.dr文件包含1553B驅(qū)動的注冊信息。Makefile文件用于將1553B驅(qū)動編譯到目標(biāo)函數(shù)庫文件中,README文件包含了介紹驅(qū)動的功能,使用方法等信息。

    在vxbLS1F_sm1553b.c文件中除了包含vxBus型驅(qū)動所必需的第一階段初始化函數(shù)xxxinit(),第二階段初始化函數(shù)xxxinit2(),中斷連接與使能函數(shù)xxxConnect(),中斷服務(wù)函數(shù)xxxISR()等函數(shù)外,還對外提供了一系列的方法供上層應(yīng)用調(diào)用。提供的方法有BC功能初始化方法,BC啟動方法,用戶自定義的中斷服務(wù)等。這里為了簡便起見,在BC啟動方法里面也完成了BC消息塊的設(shè)置和BC消息數(shù)據(jù)的設(shè)置。實際應(yīng)用中需要將BC消息塊的設(shè)置和BC數(shù)據(jù)的設(shè)置分別設(shè)計為可供上層應(yīng)用調(diào)用的驅(qū)動方法,以增強驅(qū)動的靈活性和適應(yīng)能力。

    源代碼文件和配置文件編輯完成后在VxWorks shell中使用編譯命令make CPU=MIPSI32R2 TOOL=gnule,將最新的智能1553B驅(qū)動增加到庫文件中。其中MIPSI32R2表示將驅(qū)動編譯成適合架構(gòu)為MIPS的32位R2類型CPU,gnule表示驅(qū)動使用gnu編譯器編譯,并且編譯成小端模式。

    接著將40vxbLS1F_sm1553b.cdf拷貝到“C:WindRivervxworks-6.8 argetconfigcompsvxWorks”路徑下。然后將vxbLS1F_ sm1553b.dc,vxbLS1F_sm1553b.dr文件拷貝到“C:WindRivervxworks-6.8 argetconfigcompssrchwif”路徑下。完成驅(qū)動在Wind River Workbench開發(fā)環(huán)境中的配置。更新驅(qū)動文件后需要重新啟動Workbench開發(fā)環(huán)境,并且重新建立工程才能使用新的驅(qū)動程序。

    3 實驗驗證

    1)實驗環(huán)境。

    目標(biāo)機:龍芯1E1F開發(fā)板。

    宿主機:研華工控機(i7處理器,16G內(nèi)存,2TB硬盤),Alta PCI 1553B 雙通道 仿真卡(用于模擬RT以及總線數(shù)據(jù)監(jiān)控),windows 7 x64,vxWorks6.8開發(fā)環(huán)境Workbench 3.2,On Chip Debugger ICE2(用于下載程序),AltaView Bus Analyzer(Alta PCI 1553B 雙通道 仿真卡的應(yīng)用軟件)。

    設(shè)備連接圖如圖4。

    圖4 龍芯1E1F實驗連接圖

    2)實驗過程。

    首先在workbench開發(fā)環(huán)境中創(chuàng)建一個VxWorks Image型工程,選擇相應(yīng)的支持龍芯1E1F的BSP,然后在工程的內(nèi)核模塊配置界面上將上文提到的ns16550串口,mips r4k 時鐘,mips中斷控制器,龍芯1E中斷控制器,龍芯1F中斷控制器,智能1553B等驅(qū)動模塊都選擇上,然后保存工程。接著在usrAppInit.c文件中usrAppInit()函數(shù)內(nèi)添加應(yīng)用層代碼。通過調(diào)用智能1553B驅(qū)動提供的一些方法,進行1553B的BC功能和相關(guān)驅(qū)動的功能測試。關(guān)鍵代碼如下:

    a)調(diào)用BC init方法執(zhí)行BC的初始化。

    methodLS1FBCInit = vxbDevMethodGet(devID,DEVMETHOD_CALL(ls1fbcInit));

    if(NULL != methodLS1FBCInit)

    {

    methodLS1FBCInit(devID,0);

    }

    b)添加用戶自定義的中斷服務(wù)函數(shù)。

    methodLS1FBCSetISR = vxbDevMethodGet(devID,DEVMETHOD_CALL(ls1fbcSetISR));

    if(NULL != methodLS1FBCSetISR)

    {

    methodLS1FBCSetISR(devID,sm1553bISR);

    }

    其中sm1553bISR內(nèi)部只進行一個打印輸出:

    logMsg("1F 1553b new ISR, ",0,0,0,0,0,0);

    c)啟動一個任務(wù)進行每秒啟動一次BC消息幀。

    taskSpawn("tBC-Test",100, 0,5000, (FUNCPTR) task_1F_BC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);

    任務(wù)task_1F_BC中首先獲取SM1553b驅(qū)動的ls1fbcStart方法,然后設(shè)計了一個while循環(huán)模塊,在循環(huán)中調(diào)用ls1fbcStart方法,然后通過taskDelay等待1秒鐘,再進行下一個循環(huán)。主要代碼如下:

    VXB_DEVICE_ID devID = NULL;

    STATUS (*methodLS1FBCStart)(VXB_DEVICE_ID devID,void * pArg);

    devID = vxbInstByNameFind("LS1F_sm1553b",0);

    if(NULL != devID)

    {

    methodLS1FBCStart = vxbDevMethodGet ( devID,DEVMETHOD_CALL ( ls1fbcStart));

    }

    while(NULL != methodLS1FBCStart)

    {

    methodLS1FBCStart(devID,0);

    /*等待1秒,1秒 60個tick,*/

    taskDelay(60);

    }

    3)實驗結(jié)果。

    系統(tǒng)啟動后在串口終端運行vxBusShow命令顯示當(dāng)前系統(tǒng)的驅(qū)動和設(shè)備。從串口輸出可知當(dāng)前系統(tǒng)注冊的驅(qū)動有mipsIntCtlr中斷控制器驅(qū)動,LS1F_sm1553b驅(qū)動,LS1FIntCtlr中斷控制器驅(qū)動,LS1EIntCtlr中斷控制器驅(qū)動,ns16550驅(qū)動,r4KTimerDev時鐘驅(qū)動等,已經(jīng)與驅(qū)動匹配的設(shè)備有LS1F_sm1553b unit0,mipsIntCtlr0,LS1FIntCtlr unit0,LS1EIntCtlr unit0,ns16550 unit0,ns16550 unit1,r4KTimerDev unit0等。

    BC運行后,觀察串口輸出內(nèi)容(見圖5),每秒執(zhí)行了一次BC幀,并且響應(yīng)中斷2次,進入了用戶自定義的中斷服務(wù)函數(shù)2次。表明中斷響應(yīng)過程正常。

    圖5 中斷響應(yīng)串口輸出圖

    通過Alta 1553B仿真卡提供的RT和BM功能可以監(jiān)控到1553B總線上進行了從BC到RT4的消息傳輸,分別為子地址1,子地址2,子地址3,數(shù)據(jù)內(nèi)容與數(shù)據(jù)頻率與前面的BC消息塊設(shè)置一致。

    4 結(jié)論

    本文基于龍芯1E1F平臺和VxWorks系統(tǒng),對VxBus型驅(qū)動設(shè)計技術(shù)進行了詳細介紹,對串口、時鐘,中斷控制器和智能1553B的驅(qū)動進行了設(shè)計,并通過實驗驗證,證明了VxBus型驅(qū)動設(shè)計技術(shù)結(jié)構(gòu)更加清晰,能夠更好的進行底層技術(shù)封裝,對上層應(yīng)用軟件開發(fā)提供了更加友好的接口。對未來航天領(lǐng)域基于龍芯和Vxworks系統(tǒng)的開發(fā)設(shè)計具有較高的參考價值。

    參考文獻:

    [1]龍芯中科技術(shù)有限公司,龍芯1E處理器數(shù)據(jù)手冊[Z]. 北京:龍芯中科技術(shù)有限公司,2016.

    [2]龍芯中科技術(shù)有限公司,龍芯1F處理器用戶手冊[Z] . 北京:龍芯中科技術(shù)有限公司,2015.

    [3]向昱丞,周加誼,淺談VxBus的設(shè)備驅(qū)動開發(fā)[J].機電產(chǎn)品開發(fā)與創(chuàng)新,2016,29(2):57-58.

    [4]王 雷,樊曉椏,王黨輝,龍芯3A平臺Vxworks移植的研究和實現(xiàn)[J].微電子學(xué)與計算機,2012,29(2):86-90.

    [5]史毅龍, 薛長斌,基于“龍芯”的VxWorks系統(tǒng)函數(shù)在軌更新研究[J].電子設(shè)計工程,2015,23(21):106-109.

    [6]楊 曄,安軍社,VxWorks在龍芯處理器上移植與實現(xiàn)[J].微計算機信息,2010,26(12-2):31-33.

    [7]陳學(xué)兵,沈毅南,張振華,VxWorks5.5在龍芯2號處理器的移植和性能分析[J].計算機測量與控制,2012,20(9):2542-2545.

    [8]Wind River.Device Driver Developer’s Guide Volume 1:Fundamentals of Writing Device Drivers 6.8,Wind River[Z].2009.

    [9]Wind River.Device Driver Developer’s Guide Volume 2: Writing Class-Specific Device Drivers 6.8,Wind River[Z].2009.

    [10]徐 騫,VxWorks下龍芯3A中斷控制技術(shù)的研究[J].現(xiàn)代電子技術(shù),2017,40(14):36-39.

    [11]龍芯中科技術(shù)有限公司,龍芯1E 1F開發(fā)手冊[Z] . 北京:龍芯中科技術(shù)有限公司, 2017.

    猜你喜歡
    服務(wù)程序龍芯中斷
    基于國產(chǎn)化龍芯的動環(huán)數(shù)據(jù)采集系統(tǒng)
    基于移動終端的人事信息員工自助服務(wù)系統(tǒng)設(shè)計
    基于C#的進程守護程序的設(shè)計
    視聽(2020年3期)2020-06-11 14:28:18
    跟蹤導(dǎo)練(二)(5)
    千里移防,衛(wèi)勤保障不中斷
    解放軍健康(2017年5期)2017-08-01 06:27:44
    “龍芯之父”胡偉武
    華人時刊(2016年13期)2016-04-05 05:50:06
    龍芯發(fā)布新一代處理器產(chǎn)品
    水利工程施工監(jiān)理服務(wù)程序及質(zhì)量控制
    AT89C51與中斷有關(guān)的寄存器功能表解
    FPGA內(nèi)嵌PowerPC的中斷響應(yīng)分析
    微處理機(2012年4期)2012-06-13 11:32:24
    成人一区二区视频在线观看| 亚洲精品亚洲一区二区| 真人做人爱边吃奶动态| 色av中文字幕| 久久精品国产亚洲网站| 好男人在线观看高清免费视频| a在线观看视频网站| 欧美成人性av电影在线观看| 国产老妇女一区| 精品人妻一区二区三区麻豆 | 成年版毛片免费区| bbb黄色大片| 99热只有精品国产| 色哟哟哟哟哟哟| 黄色配什么色好看| 亚洲av成人精品一区久久| 欧美另类亚洲清纯唯美| 欧美极品一区二区三区四区| 性欧美人与动物交配| 热99re8久久精品国产| 久久午夜亚洲精品久久| 国产精品嫩草影院av在线观看 | 嫩草影院精品99| 日韩中字成人| 亚洲va日本ⅴa欧美va伊人久久| 国产av一区在线观看免费| 免费人成在线观看视频色| 一级毛片久久久久久久久女| 一区福利在线观看| 国产一区二区三区视频了| 看黄色毛片网站| 老司机福利观看| 久久久色成人| 男女之事视频高清在线观看| 热99在线观看视频| 老熟妇乱子伦视频在线观看| 麻豆一二三区av精品| 极品教师在线视频| 51国产日韩欧美| 免费观看人在逋| 免费高清视频大片| 一区福利在线观看| 日日撸夜夜添| 美女黄网站色视频| 欧美黑人欧美精品刺激| 亚洲av成人av| 综合色av麻豆| 国产精品福利在线免费观看| 欧美不卡视频在线免费观看| 久久人妻av系列| 如何舔出高潮| 亚洲avbb在线观看| 女人被狂操c到高潮| 中国美女看黄片| 欧美日韩乱码在线| 狠狠狠狠99中文字幕| а√天堂www在线а√下载| а√天堂www在线а√下载| 欧美成人性av电影在线观看| 日本 欧美在线| 丝袜美腿在线中文| 免费搜索国产男女视频| а√天堂www在线а√下载| 国产精品免费一区二区三区在线| 国产老妇女一区| 中文字幕人妻熟人妻熟丝袜美| 一本久久中文字幕| 国内毛片毛片毛片毛片毛片| 亚洲成人中文字幕在线播放| 色5月婷婷丁香| 老司机福利观看| 狂野欧美白嫩少妇大欣赏| 无人区码免费观看不卡| x7x7x7水蜜桃| 性欧美人与动物交配| 色av中文字幕| 特大巨黑吊av在线直播| 夜夜夜夜夜久久久久| 亚洲精华国产精华精| 亚洲18禁久久av| 日韩欧美 国产精品| 国产亚洲精品综合一区在线观看| 给我免费播放毛片高清在线观看| 成年女人永久免费观看视频| 午夜福利欧美成人| 国产精品综合久久久久久久免费| 国产黄片美女视频| 欧美高清成人免费视频www| 最近最新中文字幕大全电影3| 欧美日韩亚洲国产一区二区在线观看| 女人十人毛片免费观看3o分钟| 琪琪午夜伦伦电影理论片6080| 国产伦精品一区二区三区视频9| 久久久久久九九精品二区国产| 日韩大尺度精品在线看网址| 夜夜夜夜夜久久久久| 美女 人体艺术 gogo| 免费看av在线观看网站| 日本在线视频免费播放| 级片在线观看| 成人一区二区视频在线观看| 国产免费男女视频| 亚洲美女搞黄在线观看 | 亚洲aⅴ乱码一区二区在线播放| 亚洲av免费高清在线观看| 精品午夜福利视频在线观看一区| 麻豆国产av国片精品| 国产淫片久久久久久久久| 99久久成人亚洲精品观看| 国产精品乱码一区二三区的特点| 一进一出抽搐gif免费好疼| 美女免费视频网站| 精品久久国产蜜桃| 一边摸一边抽搐一进一小说| 99热这里只有是精品在线观看| 午夜精品一区二区三区免费看| 国产乱人伦免费视频| 欧美又色又爽又黄视频| 久久99热这里只有精品18| 91久久精品电影网| 国内精品美女久久久久久| 欧美最新免费一区二区三区| 国产毛片a区久久久久| 伊人久久精品亚洲午夜| 中文资源天堂在线| 国产激情偷乱视频一区二区| 黄色丝袜av网址大全| 中文字幕av在线有码专区| 欧美三级亚洲精品| 日本色播在线视频| 少妇丰满av| АⅤ资源中文在线天堂| 亚洲黑人精品在线| 国产成人aa在线观看| 一本精品99久久精品77| 成人精品一区二区免费| 看免费成人av毛片| 国产视频一区二区在线看| 2021天堂中文幕一二区在线观| 久久精品影院6| 日日干狠狠操夜夜爽| 午夜精品久久久久久毛片777| 国产真实乱freesex| 九九爱精品视频在线观看| 欧美+日韩+精品| 午夜福利高清视频| 男人舔女人下体高潮全视频| 我要看日韩黄色一级片| 男插女下体视频免费在线播放| 久久久久性生活片| 久久精品国产亚洲av天美| 精品一区二区三区av网在线观看| 国产精品人妻久久久久久| 动漫黄色视频在线观看| 在线观看一区二区三区| 亚洲内射少妇av| 亚洲国产精品成人综合色| 男人的好看免费观看在线视频| 欧美色欧美亚洲另类二区| 欧美国产日韩亚洲一区| 成人综合一区亚洲| 中文亚洲av片在线观看爽| 两个人的视频大全免费| 999久久久精品免费观看国产| 国产三级中文精品| 高清日韩中文字幕在线| 久久久久久大精品| 男女之事视频高清在线观看| 中国美女看黄片| 国产美女午夜福利| 日韩欧美在线二视频| 国产欧美日韩精品一区二区| 成人高潮视频无遮挡免费网站| .国产精品久久| 999久久久精品免费观看国产| 中文亚洲av片在线观看爽| 亚洲精品亚洲一区二区| 亚洲综合色惰| 亚洲最大成人av| 国产成人影院久久av| 国产成人av教育| 99久国产av精品| 国产精品一区二区免费欧美| 国产探花极品一区二区| 99久久久亚洲精品蜜臀av| 欧美日韩精品成人综合77777| 亚州av有码| 美女免费视频网站| 国产主播在线观看一区二区| 身体一侧抽搐| 永久网站在线| 亚洲色图av天堂| 又黄又爽又免费观看的视频| 国产精品98久久久久久宅男小说| 午夜日韩欧美国产| 国产一区二区三区视频了| 色在线成人网| 国产91精品成人一区二区三区| 露出奶头的视频| 久久九九热精品免费| 国产精品久久久久久久久免| 美女被艹到高潮喷水动态| 麻豆成人av在线观看| 99国产极品粉嫩在线观看| 久久久久久久久久黄片| 成人午夜高清在线视频| 人妻少妇偷人精品九色| 成熟少妇高潮喷水视频| 人妻制服诱惑在线中文字幕| 动漫黄色视频在线观看| 国产主播在线观看一区二区| 欧美zozozo另类| 蜜桃久久精品国产亚洲av| 久久久久久久久久成人| 亚洲欧美日韩无卡精品| 听说在线观看完整版免费高清| 美女 人体艺术 gogo| 中国美白少妇内射xxxbb| 婷婷精品国产亚洲av在线| 超碰av人人做人人爽久久| 国产视频内射| 精品一区二区三区av网在线观看| 老司机深夜福利视频在线观看| 欧美不卡视频在线免费观看| 在线观看免费视频日本深夜| 大型黄色视频在线免费观看| 国产 一区精品| 高清日韩中文字幕在线| a级毛片免费高清观看在线播放| 嫩草影院新地址| 欧美不卡视频在线免费观看| 亚洲中文字幕一区二区三区有码在线看| 久久久午夜欧美精品| 亚州av有码| 免费搜索国产男女视频| 99热6这里只有精品| 成年女人毛片免费观看观看9| 欧美极品一区二区三区四区| 午夜日韩欧美国产| 成年女人看的毛片在线观看| 精品人妻1区二区| 变态另类丝袜制服| 国产精华一区二区三区| 精品人妻一区二区三区麻豆 | 露出奶头的视频| 亚洲av熟女| 久久九九热精品免费| 女人被狂操c到高潮| 国产色爽女视频免费观看| 国产免费男女视频| 精品人妻偷拍中文字幕| 精品一区二区免费观看| or卡值多少钱| 男人和女人高潮做爰伦理| 欧美国产日韩亚洲一区| 国产免费男女视频| 国产av在哪里看| 丰满乱子伦码专区| 午夜福利视频1000在线观看| 高清在线国产一区| 国产黄片美女视频| av国产免费在线观看| 黄色视频,在线免费观看| 日韩 亚洲 欧美在线| 啦啦啦观看免费观看视频高清| 在线天堂最新版资源| 免费观看在线日韩| av中文乱码字幕在线| 日本与韩国留学比较| 精华霜和精华液先用哪个| 国产国拍精品亚洲av在线观看| 国产亚洲91精品色在线| 搡老妇女老女人老熟妇| 日韩av在线大香蕉| 最新在线观看一区二区三区| 精品久久久久久久人妻蜜臀av| 一区二区三区高清视频在线| 国产精品国产三级国产av玫瑰| 亚洲精品影视一区二区三区av| 国产亚洲欧美98| 日日摸夜夜添夜夜添av毛片 | 男女视频在线观看网站免费| 婷婷丁香在线五月| 国产免费男女视频| av中文乱码字幕在线| 露出奶头的视频| 18禁裸乳无遮挡免费网站照片| 亚洲人与动物交配视频| 国产大屁股一区二区在线视频| 内射极品少妇av片p| 国产精品98久久久久久宅男小说| 久久久久久九九精品二区国产| 国产伦精品一区二区三区视频9| 乱人视频在线观看| 亚洲四区av| 成熟少妇高潮喷水视频| 日韩欧美在线乱码| 亚洲中文字幕一区二区三区有码在线看| 最新中文字幕久久久久| 欧美一区二区国产精品久久精品| 久久午夜福利片| 欧美另类亚洲清纯唯美| 伦精品一区二区三区| 大型黄色视频在线免费观看| 哪里可以看免费的av片| 免费人成视频x8x8入口观看| 三级毛片av免费| 亚洲精华国产精华液的使用体验 | 最近中文字幕高清免费大全6 | 国产亚洲精品av在线| 99国产极品粉嫩在线观看| 露出奶头的视频| 麻豆av噜噜一区二区三区| 国产精品不卡视频一区二区| 亚洲一区二区三区色噜噜| 他把我摸到了高潮在线观看| 免费看美女性在线毛片视频| 国产69精品久久久久777片| 免费人成在线观看视频色| 成人毛片a级毛片在线播放| 长腿黑丝高跟| 久久久久国内视频| 99热这里只有是精品50| 亚洲国产高清在线一区二区三| 日韩欧美三级三区| 国产亚洲精品久久久com| 亚洲av成人精品一区久久| 日韩中文字幕欧美一区二区| 99在线人妻在线中文字幕| 日本一二三区视频观看| 国产色爽女视频免费观看| 成年版毛片免费区| 国产私拍福利视频在线观看| 色精品久久人妻99蜜桃| 久久久久精品国产欧美久久久| 国产熟女欧美一区二区| 97超视频在线观看视频| 真人一进一出gif抽搐免费| 91精品国产九色| 欧美最黄视频在线播放免费| 老司机深夜福利视频在线观看| 又粗又爽又猛毛片免费看| 日本 av在线| 欧美黑人巨大hd| bbb黄色大片| 看黄色毛片网站| 精品不卡国产一区二区三区| 午夜福利成人在线免费观看| 老司机深夜福利视频在线观看| 亚洲美女视频黄频| www.www免费av| 成人欧美大片| 12—13女人毛片做爰片一| 欧美日韩中文字幕国产精品一区二区三区| 一级黄片播放器| 不卡视频在线观看欧美| 美女免费视频网站| 嫩草影院入口| 老女人水多毛片| ponron亚洲| 91久久精品国产一区二区三区| 性欧美人与动物交配| 赤兔流量卡办理| 国产爱豆传媒在线观看| 亚洲熟妇熟女久久| 亚洲五月天丁香| 蜜桃久久精品国产亚洲av| 亚洲色图av天堂| 国产精品久久久久久精品电影| 一区二区三区免费毛片| 日本在线视频免费播放| 亚洲av二区三区四区| 色综合亚洲欧美另类图片| 97热精品久久久久久| 日本在线视频免费播放| 国语自产精品视频在线第100页| 亚洲精品色激情综合| 色播亚洲综合网| 欧美国产日韩亚洲一区| 色综合色国产| 久久久久久伊人网av| 久久午夜亚洲精品久久| 国产激情偷乱视频一区二区| 午夜影院日韩av| 天美传媒精品一区二区| 蜜桃亚洲精品一区二区三区| 波野结衣二区三区在线| 九九久久精品国产亚洲av麻豆| 成年人黄色毛片网站| 在线国产一区二区在线| 午夜a级毛片| 真人一进一出gif抽搐免费| 在线观看舔阴道视频| 一区福利在线观看| 亚洲四区av| 亚洲成av人片在线播放无| 高清日韩中文字幕在线| 人妻少妇偷人精品九色| 亚洲无线观看免费| 亚洲成人久久性| 国产一区二区在线av高清观看| 欧美丝袜亚洲另类 | 91av网一区二区| 嫁个100分男人电影在线观看| 老女人水多毛片| 成人av一区二区三区在线看| 欧美性感艳星| 国产又黄又爽又无遮挡在线| 神马国产精品三级电影在线观看| 亚洲av熟女| 日韩大尺度精品在线看网址| 精品久久久久久,| 免费人成视频x8x8入口观看| 国产成人a区在线观看| 无遮挡黄片免费观看| 国模一区二区三区四区视频| 成人一区二区视频在线观看| 国产一区二区在线观看日韩| 在现免费观看毛片| 国产亚洲精品综合一区在线观看| 97人妻精品一区二区三区麻豆| 我要看日韩黄色一级片| 美女 人体艺术 gogo| 日日摸夜夜添夜夜添av毛片 | 淫秽高清视频在线观看| 18禁黄网站禁片午夜丰满| 国产午夜精品论理片| 午夜影院日韩av| 一本久久中文字幕| 国产又黄又爽又无遮挡在线| 中文字幕av成人在线电影| 听说在线观看完整版免费高清| 色尼玛亚洲综合影院| 午夜福利高清视频| 女人十人毛片免费观看3o分钟| 国产色婷婷99| 精品人妻视频免费看| 午夜免费激情av| 中国美白少妇内射xxxbb| 国产主播在线观看一区二区| 三级毛片av免费| 变态另类成人亚洲欧美熟女| 日韩强制内射视频| 午夜久久久久精精品| 最好的美女福利视频网| 精品久久久久久久末码| 联通29元200g的流量卡| 亚洲成人中文字幕在线播放| 久久6这里有精品| 亚洲中文日韩欧美视频| 午夜a级毛片| 国产人妻一区二区三区在| 日日摸夜夜添夜夜添小说| 国产午夜精品久久久久久一区二区三区 | 国产亚洲精品久久久com| 91在线观看av| 色综合亚洲欧美另类图片| 亚洲人与动物交配视频| 成年版毛片免费区| АⅤ资源中文在线天堂| 成熟少妇高潮喷水视频| 夜夜看夜夜爽夜夜摸| 国产高清有码在线观看视频| 国产成人福利小说| 精品久久久久久成人av| 国内精品美女久久久久久| 毛片一级片免费看久久久久 | 在线天堂最新版资源| 乱人视频在线观看| 如何舔出高潮| 少妇人妻精品综合一区二区 | 亚洲精品日韩av片在线观看| 男人和女人高潮做爰伦理| 成人高潮视频无遮挡免费网站| 国产精品国产三级国产av玫瑰| 精品人妻熟女av久视频| 伦理电影大哥的女人| 我要看日韩黄色一级片| 国产精品一区二区免费欧美| 男人舔女人下体高潮全视频| 亚洲欧美激情综合另类| 国产极品精品免费视频能看的| 啪啪无遮挡十八禁网站| 大又大粗又爽又黄少妇毛片口| 无遮挡黄片免费观看| 亚洲精品影视一区二区三区av| 在线观看66精品国产| 两个人的视频大全免费| 俄罗斯特黄特色一大片| 又黄又爽又刺激的免费视频.| 精品人妻视频免费看| 国产精品美女特级片免费视频播放器| 国产乱人伦免费视频| 日韩欧美免费精品| 欧美潮喷喷水| 国产精品免费一区二区三区在线| 亚洲av不卡在线观看| 久久久久久九九精品二区国产| 最近最新免费中文字幕在线| 国产精品不卡视频一区二区| 久久99热这里只有精品18| 免费在线观看成人毛片| 成人国产综合亚洲| 欧美一区二区国产精品久久精品| 国产在线精品亚洲第一网站| 少妇人妻一区二区三区视频| 可以在线观看的亚洲视频| 亚洲,欧美,日韩| 99热网站在线观看| 午夜激情欧美在线| 成人特级黄色片久久久久久久| 亚洲aⅴ乱码一区二区在线播放| 欧美高清成人免费视频www| 亚洲熟妇中文字幕五十中出| 午夜久久久久精精品| 一区福利在线观看| 日本黄色片子视频| 国内少妇人妻偷人精品xxx网站| 日韩高清综合在线| 看免费成人av毛片| 舔av片在线| 免费一级毛片在线播放高清视频| 99久久中文字幕三级久久日本| 欧美另类亚洲清纯唯美| 精品久久久久久,| xxxwww97欧美| 两个人的视频大全免费| 免费观看人在逋| 日韩大尺度精品在线看网址| 亚洲av美国av| 极品教师在线视频| 国产爱豆传媒在线观看| www.www免费av| 亚洲性久久影院| 久久人人爽人人爽人人片va| 欧美高清性xxxxhd video| 欧美+亚洲+日韩+国产| 国产欧美日韩一区二区精品| 国产精品一区二区三区四区免费观看 | 精品国内亚洲2022精品成人| avwww免费| 欧美日韩亚洲国产一区二区在线观看| 日日啪夜夜撸| 中文字幕精品亚洲无线码一区| 成人av一区二区三区在线看| 99riav亚洲国产免费| 亚洲专区国产一区二区| 一个人观看的视频www高清免费观看| 日韩欧美在线乱码| 亚洲精品国产成人久久av| 国产欧美日韩精品一区二区| 床上黄色一级片| 成人综合一区亚洲| 国产精品一区二区三区四区久久| 又爽又黄a免费视频| 久久中文看片网| 日本一本二区三区精品| 国产成年人精品一区二区| 黄色丝袜av网址大全| 久久国产乱子免费精品| 国内精品久久久久久久电影| 日韩欧美国产一区二区入口| av女优亚洲男人天堂| 国产精品久久久久久久电影| 色精品久久人妻99蜜桃| 国内精品一区二区在线观看| 超碰av人人做人人爽久久| 亚洲成av人片在线播放无| a级毛片免费高清观看在线播放| 联通29元200g的流量卡| 国产高清视频在线观看网站| 观看免费一级毛片| 精品乱码久久久久久99久播| 天堂影院成人在线观看| 国产免费av片在线观看野外av| 欧美高清性xxxxhd video| 国产主播在线观看一区二区| 国产精品久久电影中文字幕| 亚洲美女视频黄频| 99久久成人亚洲精品观看| 亚洲美女视频黄频| 日本三级黄在线观看| 色综合亚洲欧美另类图片| 久久国产精品人妻蜜桃| 免费不卡的大黄色大毛片视频在线观看 | 免费观看精品视频网站| 丰满的人妻完整版| 级片在线观看| 91麻豆精品激情在线观看国产| 日本一本二区三区精品| 欧美精品国产亚洲| av专区在线播放| 综合色av麻豆| 搡老熟女国产l中国老女人| 观看美女的网站| 又黄又爽又免费观看的视频| 免费搜索国产男女视频| 小说图片视频综合网站| 亚洲va在线va天堂va国产| 国产免费一级a男人的天堂| 给我免费播放毛片高清在线观看| 欧美日韩黄片免| 在现免费观看毛片| 午夜福利高清视频| 无人区码免费观看不卡| 日韩人妻高清精品专区| 国内精品久久久久久久电影| 91av网一区二区| 欧洲精品卡2卡3卡4卡5卡区| 美女黄网站色视频| 国内精品久久久久精免费| 欧美性猛交黑人性爽| 91狼人影院| 女人十人毛片免费观看3o分钟| 婷婷精品国产亚洲av|