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

    VxWorks自定義動(dòng)態(tài)系統(tǒng)調(diào)用的應(yīng)用

    2017-02-27 11:10:35解建偉賴前程曹成軍張興旺
    關(guān)鍵詞:內(nèi)核調(diào)用程序

    解建偉 賴前程 曹成軍 張興旺

    (中國(guó)電器科學(xué)研究院有限公司 廣東 廣州 510300)

    VxWorks自定義動(dòng)態(tài)系統(tǒng)調(diào)用的應(yīng)用

    解建偉 賴前程 曹成軍 張興旺

    (中國(guó)電器科學(xué)研究院有限公司 廣東 廣州 510300)

    系統(tǒng)調(diào)用是用戶模式程序訪問內(nèi)核服務(wù)、硬件資源的接口。自定義的系統(tǒng)調(diào)用在VxWorks程序開發(fā)中有著非常重要的作用。通過自定義系統(tǒng)調(diào)用可以讓用戶模式的程序訪問更多的內(nèi)核函數(shù)、硬件資源,可以擴(kuò)展程序的應(yīng)用范圍。簡(jiǎn)單論述VxWorks中自定義系統(tǒng)調(diào)用的概念,描述系統(tǒng)調(diào)用的過程,分步介紹自定義動(dòng)態(tài)系統(tǒng)調(diào)用的實(shí)現(xiàn)過程。最后介紹應(yīng)用程序中動(dòng)態(tài)系統(tǒng)調(diào)用的使用方法。

    VxWorks 自定義 系統(tǒng)調(diào)用

    0 引 言

    VxWorks是美國(guó)風(fēng)河公司設(shè)計(jì)開發(fā)的嵌入式實(shí)時(shí)操作系統(tǒng),它支持多種處理器平臺(tái),具有較高的可擴(kuò)展性與安全性。VxWorks在6.0版本之前的系統(tǒng)只提供一個(gè)內(nèi)存地址空間,用戶程序和操作系統(tǒng)程序沒有做隔離,所有的任務(wù)都運(yùn)行在特權(quán)模式。盡管這種形式為程序開發(fā)提供了比較好的性能和靈活性,但也使內(nèi)核與應(yīng)用程序在內(nèi)存空間存在相互干擾的可能。在6.0版本以后,操作系統(tǒng)開始支持實(shí)時(shí)進(jìn)程RTP(real-time processes),它支持應(yīng)用程序在用戶模式運(yùn)行,并且是與操作系統(tǒng)內(nèi)核完全隔離的運(yùn)行模型。這種模型是專門為滿足硬實(shí)時(shí)操作系統(tǒng)對(duì)確定性和速度的要求而設(shè)計(jì)[1]。

    VxWorks中的RTP在很多方面都與Unix和Linux的用戶態(tài)的進(jìn)程類似,每個(gè)進(jìn)程都有自己的地址空間,包括可執(zhí)行代碼、數(shù)據(jù)堆棧以及自身相關(guān)的管理資源[2]。這使得系統(tǒng)的安全性得到極大提高,同時(shí)系統(tǒng)調(diào)用接口為用戶態(tài)的應(yīng)用程序提供了訪問內(nèi)核的接口[3]。系統(tǒng)調(diào)用常用于RTP程序訪問內(nèi)核服務(wù),CPU外設(shè)或其他硬件資源。

    需要說明的是應(yīng)用編程接口(API)與系統(tǒng)調(diào)用是不同的,前者是一個(gè)函數(shù)定義,說明如何獲得一個(gè)給定的服務(wù),而后者是通過軟中斷向內(nèi)核發(fā)出一個(gè)明確的模式切換請(qǐng)求[4]。由于特權(quán)模式的內(nèi)核程序和用戶模式程序有不同的指令集和內(nèi)存管理單元MMU(memory management unit)設(shè)置,應(yīng)用程序運(yùn)行在用戶模式時(shí)不能直接訪問內(nèi)核函數(shù)和數(shù)據(jù)結(jié)構(gòu)。用戶模式程序執(zhí)行系統(tǒng)調(diào)用函數(shù)時(shí)系統(tǒng)從用戶模式切換到CPU特權(quán)級(jí)別的內(nèi)核模式,當(dāng)執(zhí)行完函數(shù)后再恢復(fù)到用戶模式[5]。VxWorks中系統(tǒng)調(diào)用的模式切換過程對(duì)使用者來說是透明的[1]。

    在RTP程序中使用實(shí)時(shí)系統(tǒng)原有的系統(tǒng)調(diào)用與內(nèi)核交互時(shí),時(shí)常會(huì)出現(xiàn)不滿足設(shè)計(jì)需求或性能指標(biāo)的情況[6]。通過增加自定義系統(tǒng)調(diào)用,我們可以根據(jù)自己的需求,來給內(nèi)核增加特定的功能,滿足性能指標(biāo)和設(shè)計(jì)需求[7]。

    1 自定義系統(tǒng)調(diào)用

    在VxWorks中的系統(tǒng)調(diào)用一般可分為兩大類,一類是操作系統(tǒng)定義的系統(tǒng)調(diào)用,像exit、create、open、semGive等都是系統(tǒng)調(diào)用;另外一類是用戶自定義的系統(tǒng)調(diào)用。VxWorks中的自定義系統(tǒng)調(diào)用又分為靜態(tài)自定義系統(tǒng)調(diào)用和動(dòng)態(tài)自定義系統(tǒng)調(diào)用兩種。這兩種系統(tǒng)調(diào)用的實(shí)現(xiàn)方式不同,性能都基本一致,但是它們各有優(yōu)缺點(diǎn)。

    自定義的靜態(tài)系統(tǒng)調(diào)用的優(yōu)勢(shì)在于它是與操作系統(tǒng)源碼一起編譯,可根據(jù)需要修改系統(tǒng)原有的系統(tǒng)調(diào)用函數(shù);在使用時(shí)與普通的函數(shù)調(diào)用方式一致。不足之處是修改定義系統(tǒng)調(diào)用要對(duì)系統(tǒng)核心文件作修改,編譯調(diào)試,這會(huì)帶來比較大的工作量,一個(gè)小小的失誤往往會(huì)使系統(tǒng)不穩(wěn)定甚至崩潰,系統(tǒng)可靠性和穩(wěn)定性不容易保證;同時(shí)增加、修改系統(tǒng)調(diào)用都比較麻煩,使得系統(tǒng)可維護(hù)性與可移植性將會(huì)降低[8]。

    動(dòng)態(tài)的系統(tǒng)調(diào)用只需要在運(yùn)行時(shí)向系統(tǒng)注冊(cè)自定義系統(tǒng)調(diào)用,不需要像自定義靜態(tài)系統(tǒng)調(diào)用那樣修改VxWorks源代碼文件,不需要與操作系統(tǒng)一起重新編譯生成[2]。其優(yōu)勢(shì)是不需要對(duì)系統(tǒng)核心代碼做更改,減少了對(duì)內(nèi)核穩(wěn)定性的影響;同時(shí)對(duì)新增系統(tǒng)調(diào)用的修改、更新、刪除都比較方便。不足之處在于一般不能通過名字直接訪問動(dòng)態(tài)系統(tǒng)調(diào)用函數(shù),在應(yīng)用的時(shí)候需要知道自定義動(dòng)態(tài)系統(tǒng)調(diào)用的組編號(hào)和索引位置,然后統(tǒng)一由syscall函數(shù)調(diào)用。

    2 動(dòng)態(tài)系統(tǒng)調(diào)用的實(shí)現(xiàn)

    2.1 分析與設(shè)計(jì)

    在VxWorks6.9實(shí)時(shí)操作系統(tǒng)中用戶自定義的系統(tǒng)調(diào)用主要有3個(gè)元素:

    (1) 系統(tǒng)調(diào)用。執(zhí)行系統(tǒng)調(diào)用的是使用匯編語言編寫的一個(gè)函數(shù),它通過C語言調(diào)用。區(qū)別不同系統(tǒng)調(diào)用的方式是在調(diào)用時(shí)使用系統(tǒng)調(diào)用函數(shù)名字和系統(tǒng)調(diào)用編號(hào),這是系統(tǒng)開發(fā)人員定義的。

    (2) 捕獲處理。當(dāng)用戶RTP程序訪問系統(tǒng)調(diào)用時(shí)會(huì)執(zhí)行捕獲指令處理,它將調(diào)用的程序從用戶模式切換到特權(quán)(內(nèi)核)模式執(zhí)行。系統(tǒng)調(diào)用編號(hào)傳遞給內(nèi)核去識(shí)別關(guān)聯(lián)的函數(shù)。在內(nèi)核中,捕獲處理從用戶堆?;蚣拇嫫骺臻g拷貝系統(tǒng)調(diào)用參數(shù)到內(nèi)核堆棧空間,然后調(diào)用系統(tǒng)調(diào)用關(guān)聯(lián)匹配的處理函數(shù)。

    (3) 處理函數(shù)。系統(tǒng)調(diào)用的處理函數(shù)是系統(tǒng)開發(fā)者編寫的程序,它只有一個(gè)結(jié)構(gòu)體變量參數(shù),結(jié)構(gòu)體成員就是系統(tǒng)調(diào)用的參數(shù)[3]。當(dāng)系統(tǒng)從處理函數(shù)返回,調(diào)用任務(wù)將從特權(quán)(內(nèi)核)模式切換到用戶模式。

    用戶自定義動(dòng)態(tài)系統(tǒng)調(diào)用程序的實(shí)現(xiàn)一般可以分為以下3個(gè)步驟:

    (1) 設(shè)計(jì)參數(shù)結(jié)構(gòu),編寫處理函數(shù);

    (2) 添加系統(tǒng)調(diào)用處理表結(jié)構(gòu)信息;

    (3) 注冊(cè)系統(tǒng)調(diào)用函數(shù)及相關(guān)設(shè)置。

    VxWorks文檔建議,對(duì)于添加動(dòng)態(tài)系統(tǒng)調(diào)用的方法最好使用統(tǒng)一的命名約定,使得系統(tǒng)調(diào)用的邏輯一致性和代碼的清晰度最好。命名約定如表1所示。

    表1 命名約束

    設(shè)計(jì)的實(shí)時(shí)控制系統(tǒng)中需要實(shí)現(xiàn)RTP應(yīng)用程序讀寫FPGA中的數(shù)據(jù)動(dòng)態(tài)系統(tǒng)調(diào)用,其中FPGA是掛載在處理器的IFC(Integrated Flash Controller)接口上通過絕對(duì)地址訪問。

    根據(jù)命名約束,在內(nèi)核任務(wù)程序中需要實(shí)現(xiàn)兩個(gè)自定義動(dòng)態(tài)系統(tǒng)調(diào)用get_fpga_registerSc和set_fpga_registerSc函數(shù),并為它們注冊(cè)合適的系統(tǒng)調(diào)用編號(hào),檢查系統(tǒng)調(diào)用的注冊(cè)信息。最后在RTP程序中通過使用此動(dòng)態(tài)統(tǒng)調(diào)用訪問FPGA的寄存器內(nèi)容,檢查執(zhí)行正確性。

    2.2 實(shí)現(xiàn)過程

    第一步是設(shè)計(jì)、編寫動(dòng)態(tài)系統(tǒng)調(diào)用函數(shù),及其參數(shù)結(jié)構(gòu)。自定義讀寫函數(shù)的系統(tǒng)調(diào)用其聲明如下:

    int set_fpga_registerSc(SysCallSetRegScArgs *pArgs);

    int get_fpga_registerSc(SysCallGetRegScArgs *pArgs);

    其中動(dòng)態(tài)系統(tǒng)調(diào)用定義必須要有整型的返回值,參數(shù)是通過指向參數(shù)結(jié)構(gòu)體的指針來進(jìn)行傳遞。自定義動(dòng)態(tài)系統(tǒng)調(diào)用函數(shù)最多可以有8個(gè)參數(shù),即最多可以只有8個(gè)結(jié)構(gòu)體成員。每個(gè)參數(shù)長(zhǎng)度都是本機(jī)字大小(32位處理器參數(shù)長(zhǎng)度就是32位,64位處理器參數(shù)長(zhǎng)度就是64位),如果在32位系統(tǒng)上要傳遞64位參數(shù)需要特別處理。get_fpga_registerSc系統(tǒng)調(diào)用有2個(gè)參數(shù),其傳遞的參數(shù)結(jié)構(gòu)體如下:

    typedef struct{

    unsigned int index;

    unsigned short* pV;

    } SysCallGetRegScArgs;

    函數(shù)get_fpga_registerSc的執(zhí)行是在內(nèi)核中完成,執(zhí)行時(shí)所有參數(shù)在使用前必須做邊界值檢查,驗(yàn)證使用的內(nèi)存地址,以及檢查數(shù)據(jù)結(jié)構(gòu)的有效性。對(duì)內(nèi)存地址的驗(yàn)證是實(shí)際大小的緩沖大小,而不是最大緩沖大小。也就是說RTP程序分配了一個(gè)20個(gè)字節(jié)的緩沖區(qū),那么系統(tǒng)調(diào)用函數(shù)應(yīng)該驗(yàn)證這20個(gè)字節(jié)的內(nèi)存,如果系統(tǒng)調(diào)用函數(shù)驗(yàn)證這個(gè)緩沖的最大長(zhǎng)度(比如64個(gè)字節(jié))可能會(huì)因?yàn)橹挥?0個(gè)字節(jié)被分配而出錯(cuò)。解決這個(gè)問題的最好方法是通過參數(shù)告訴系統(tǒng)調(diào)用函數(shù)使用的緩沖空間的大小信息。

    對(duì)動(dòng)態(tài)系統(tǒng)調(diào)用函數(shù)get_fpga_registerSc的實(shí)現(xiàn)如下:

    int get_fpga_registerSc(SysCallGetRegScArgs *pArgs)

    {

    if(pArgs->index > FPGA_AGREED_MAX_SIZE)

    {

    errno = EMSGSIZE;

    return ERROR;

    }

    if (scMemValidate (pArgs->pV, sizeof(unsigned short), SC_PROT_WRITE) == ERROR)

    {

    errno = EINVAL;

    return ERROR;

    }

    if(FPGA_GetValue(pArgs->index,pArgs->pV)==ERROR)

    {

    errno = EINVAL;

    return ERROR;

    }

    return OK;

    }

    在執(zhí)行時(shí)首先驗(yàn)證讀取的FPGA地址是否已經(jīng)超出了可訪問范圍,然后使用scMemValidate函數(shù)來驗(yàn)證第二個(gè)參數(shù)地址寫入的有效性,最后讀取FPGA指定地址的數(shù)據(jù)并返回。系統(tǒng)調(diào)用內(nèi)存驗(yàn)證函數(shù)scMemValidate的第一個(gè)參數(shù)是驗(yàn)證的起始地址,第二個(gè)是驗(yàn)證地址的數(shù)據(jù)或結(jié)構(gòu)的長(zhǎng)度,第三個(gè)參數(shù)是地址空間訪問模式,它分為讀、寫、以及線程安全的讀寫3種模式。這3種模式中的讀、寫可以組合使用,而線程安全的讀寫不可以組合使用。

    在參數(shù)檢查、內(nèi)存驗(yàn)證、以及執(zhí)行過程中如果出現(xiàn)了錯(cuò)誤,需要根據(jù)具體情況對(duì)errno設(shè)置一個(gè)合適的異常值,然后返回錯(cuò)誤-1(ERROR),如果正常則返回0(OK)。返回ERROR時(shí)內(nèi)核的異常值將被拷貝到調(diào)用的任務(wù)進(jìn)程的errno中;如果沒有錯(cuò)誤,這時(shí)只是將值拷貝到調(diào)用用戶模式的任務(wù)。

    第二步是添加自定義的系統(tǒng)調(diào)用函數(shù)表。注冊(cè)VxWorks動(dòng)態(tài)系統(tǒng)調(diào)用前必須在程序源碼文件中包含自定義動(dòng)態(tài)系統(tǒng)調(diào)用的處理程序表SYSCALL_RTN_TBL_ENTRY。表中每一項(xiàng)都由SYSCALL_DESC_ENTRY()宏關(guān)聯(lián)一個(gè)系統(tǒng)調(diào)用,在VxWorks6.9版本的系統(tǒng)中此宏定義有三個(gè)參數(shù)(如果是其它版本,定義會(huì)略有不同),示例如下:

    LOCAL _WRS_DATA_ALIGN_BYTES(16) SYSCALL_RTN_TBL_ENTRY pRtnTbl [NUM_RTN] = {

    SYSCALL_DESC_ENTRY (set_fpga_registerSc, ″set_fpga_register″, 2),

    SYSCALL_DESC_ENTRY (get_fpga_registerSc, ″get_fpga_register″, 2)

    };

    系統(tǒng)調(diào)用表的_WRS_DATA_ALIGN_BYTES(16)修飾是告訴編譯、鏈接器數(shù)組按照16字節(jié)對(duì)齊以提高性能,這個(gè)修飾是可選的。NUM_RTN定義的值等于2,表示數(shù)組中的宏元素個(gè)數(shù)。SYSCALL_DESC_ENTRY宏的第1個(gè)參數(shù)是執(zhí)行系統(tǒng)調(diào)用的函數(shù)指針,第2個(gè)是對(duì)應(yīng)的系統(tǒng)調(diào)用名字,第3個(gè)參數(shù)系統(tǒng)調(diào)用參數(shù)個(gè)數(shù)。

    第三步是注冊(cè)系統(tǒng)調(diào)用。定義的處理程序表需要關(guān)聯(lián)到合適的系統(tǒng)調(diào)用的組中,完成注冊(cè)工作后才能使用。注冊(cè)的每個(gè)系統(tǒng)調(diào)用都必須有唯一的系統(tǒng)調(diào)用編號(hào)。執(zhí)行動(dòng)態(tài)系統(tǒng)調(diào)用時(shí),編號(hào)傳遞給內(nèi)核,然后使用它來識(shí)別和執(zhí)行匹配的系統(tǒng)調(diào)用處理程序。每個(gè)系統(tǒng)調(diào)用的編號(hào)是32 bit整數(shù),由兩部分組成的:一個(gè)是具有10 bit長(zhǎng)度的系統(tǒng)調(diào)用的組數(shù),另外一個(gè)是具有6 bit的系統(tǒng)調(diào)用程序編號(hào),如圖1所示。

    圖1 系統(tǒng)調(diào)用編號(hào)

    據(jù)定義可知,此系統(tǒng)最多允許有1024個(gè)組編號(hào),每個(gè)組最多有64個(gè)程序編號(hào),總共可以容納65 536個(gè)系統(tǒng)調(diào)用。根據(jù)系統(tǒng)定義,從第2組到第7組是自定義使用區(qū)間,其他組為系統(tǒng)使用或保留區(qū)間。

    系統(tǒng)調(diào)用的注冊(cè)需要使用syscallGroupRegister函數(shù),此函數(shù)第1個(gè)參數(shù)是指定注冊(cè)組編號(hào),第2個(gè)參數(shù)是組名字,第3個(gè)參數(shù)是函數(shù)個(gè)數(shù),第4個(gè)參數(shù)是處理程序表地址,第5個(gè)參數(shù)是強(qiáng)制覆蓋開關(guān)。注冊(cè)示例代碼如下:

    syscallGroupRegister (2, ″fpgaIF_ScGroup″, NUM_RTN, pRtnTbl, FALSE);

    注冊(cè)函數(shù)將pRtnTbl注冊(cè)到了第2組自定義系統(tǒng)調(diào)用中,并為之取名為fpgaIF_ScGroup,注冊(cè)組內(nèi)有2(NUM_RTN)個(gè)系統(tǒng)調(diào)用函數(shù),即set_fpga_registerSc和get_fpga_registerSc函數(shù),程序編號(hào)在組內(nèi)分別是0和1。系統(tǒng)調(diào)用的編號(hào)不是必須順序的,在多個(gè)編號(hào)之間的定義是允許留空白。注冊(cè)系統(tǒng)調(diào)用后的fpgaIF_ScGroup系統(tǒng)調(diào)用接口視圖如圖2所示。

    圖2 fpgaIF_ScGroup視圖

    2.3 檢查系統(tǒng)調(diào)用

    為了方便檢查注冊(cè)的自定義系統(tǒng)調(diào)用,需要配置操作系統(tǒng)包含INCLUDE_SHOW_ROUTINES組件,使用它檢查自定義系統(tǒng)調(diào)用。編譯并執(zhí)行本文中實(shí)現(xiàn)的自定義動(dòng)態(tài)系統(tǒng)調(diào)用注冊(cè)程序及必要的組件。操作系統(tǒng)正確運(yùn)行后,在調(diào)試終端使用syscallShow函數(shù)命令檢查系統(tǒng)調(diào)用的詳細(xì)信息。syscallShow函數(shù)有兩個(gè)參數(shù),第一個(gè)參數(shù)是組號(hào),第二個(gè)參數(shù)是顯示級(jí)別,顯示級(jí)別0表示只輸出組內(nèi)信息,1表示輸出全部信息。

    圖3 系統(tǒng)調(diào)用信息

    圖3中,在調(diào)試終端使用syscallShow查看自定義系統(tǒng)調(diào)用的第2組,以級(jí)別1顯示信息??梢钥吹阶?cè)的系統(tǒng)調(diào)用的組名為fpgaIF_ScGroup,以及組內(nèi)提供的系統(tǒng)調(diào)用的名字、地址、參數(shù)個(gè)數(shù)等信息與設(shè)計(jì)完全符合。

    3 動(dòng)態(tài)系統(tǒng)調(diào)用的使用

    在RTP程序中執(zhí)行系統(tǒng)調(diào)用,如果是靜態(tài)的自定義系統(tǒng)調(diào)用可以直接通過函數(shù)名調(diào)用,使用上與普通函數(shù)調(diào)用沒有任何區(qū)別;如果使用自定義動(dòng)態(tài)系統(tǒng)調(diào)用,則需要統(tǒng)一使用syscall接口函數(shù)來訪問。不管是什么樣的系統(tǒng)調(diào)用,在調(diào)用時(shí)產(chǎn)生的模式切換是透明的。

    動(dòng)態(tài)系統(tǒng)調(diào)用接口syscall函數(shù)有9個(gè)參數(shù),其中前8個(gè)參數(shù)是系統(tǒng)調(diào)用傳入的參數(shù),最后1個(gè)參數(shù)是系統(tǒng)調(diào)用的編號(hào),編號(hào)的計(jì)算可以使用宏SYSCALL_NUMBER指定組號(hào)與程序號(hào)替代。程序中動(dòng)態(tài)系統(tǒng)調(diào)用的應(yīng)用封裝如下:

    #define SC_GET_REG SYSCALL_NUMBER (2, 1)

    int RtpGetRegister(int i, int *pV)

    {

    if(syscall (i, pV,0,0,0,0,0,0, SC_GET_REG) == ERROR)

    {

    printf (″syscall() returned err. errno = %#x ”, errno);

    return ERROR;

    }

    return OK;

    }

    根據(jù)定義可知,RtpGetRegister 是封裝使用動(dòng)態(tài)系統(tǒng)調(diào)用函數(shù),其中的syscall執(zhí)行了第2組中的第1個(gè)系統(tǒng)調(diào)用(此系統(tǒng)調(diào)用函數(shù)就是本文中定義的get_fpga_registerSc函數(shù))并將參數(shù)i值和pV指針傳入函數(shù),執(zhí)行函數(shù)時(shí)首先驗(yàn)證i,pV的有效性,然后讀取FPGA的i地址的值放入pV指向的內(nèi)存空間,最后返回執(zhí)行結(jié)果。如果執(zhí)行系統(tǒng)調(diào)用錯(cuò)誤將返回-1(ERROR),此時(shí)可以從errno獲取到系統(tǒng)調(diào)用返回的錯(cuò)誤號(hào)并根據(jù)需要處理此錯(cuò)誤;如果執(zhí)行系統(tǒng)調(diào)用正常將會(huì)返回0(OK)。

    4 結(jié) 語

    在VxWorks系統(tǒng)中自定義系統(tǒng)調(diào)用可以讓用戶動(dòng)態(tài)地應(yīng)用程序獲得更多的資源訪問權(quán)限,這既可以保證應(yīng)用程序的安全性又?jǐn)U展了其應(yīng)用范圍。

    為操作系統(tǒng)增加動(dòng)態(tài)系統(tǒng)調(diào)用,可以使開發(fā)人員專注于如何設(shè)計(jì)、完善自定義的系統(tǒng)調(diào)用函數(shù),無需對(duì)操作系統(tǒng)源碼作修改。這樣不會(huì)增加操作系統(tǒng)內(nèi)核不穩(wěn)定的風(fēng)險(xiǎn),同時(shí)又減少了開發(fā)工作量,增強(qiáng)了自定義系統(tǒng)調(diào)用的可維護(hù)性。

    [1]WindRiverSystemsInc.VxWorksApplicationProgrammer’sGuide6.9[Z]. 2013.

    [2]WindRiverSystemsInc.VxWorksKernelProgrammer’sGuide6.9[Z].2013.

    [3] 葛仁北. 系統(tǒng)調(diào)用與操作系統(tǒng)安全[J].計(jì)算機(jī)工程與應(yīng)用,2002,38(19):97-99,128.

    [4]BovetDP,CesatiM.深入理解Linux內(nèi)核[J].陳莉君,張瓊聲,張宏偉,譯.3版. 北京:中國(guó)電力出版社,2007:397-398.

    [5] 謝錦濱, 王晨, 張申生. 系統(tǒng)調(diào)用重定向的研究與應(yīng)用[J].計(jì)算機(jī)應(yīng)用與軟件,2006,23(3):4-6.

    [6]WindRiverSystemsInc.VxWorksBenchmarkDataSheetforVxWorks6.9 1.2GHzP2020RDB[DB].2011.

    [7] 胡盼盼.Linux下系統(tǒng)調(diào)用原理解析及增加系統(tǒng)調(diào)用的方法[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2007,16(8):109-112.

    [8] 羅忠海, 劉心松.UNIX環(huán)境中動(dòng)態(tài)擴(kuò)充系統(tǒng)調(diào)用的功能[J].計(jì)算機(jī)工程與設(shè)計(jì),1999,20(1):1-6.

    APPLICATION OF VXWORKS DYNAMICAL CUSTOM SYSTEM CALLS

    Xie Jianwei Lai Qiancheng Cao Chengjun Zhang Xingwang

    (ChinaNationalElectricApparatusResearchInstituteCo.,Ltd.Guangzhou510300,Guangdong,China)

    The user mode application through system calls interface can access the kernel services and hardware resources. Custom system calls in VxWorks has a very important role in application development. Applications of user mode are able to access more kernel functions or other hardware resources through custom system calls, extending the scope of application. Thus, the concept of custom system calls in VxWorks and the system calls process are described, then the implementation process of the dynamical custom system calls is introduced step by step. Finally, the method of using dynamical custom system calls in application program is introduced.

    VxWorks Custom System calls

    2015-12-11。解建偉,工程師,主研領(lǐng)域:嵌入式軟件與驅(qū)動(dòng)開發(fā)。賴前程,工程師。曹成軍,高工。張興旺,教授級(jí)高工。

    TP316.2

    A

    10.3969/j.issn.1000-386x.2017.02.043

    猜你喜歡
    內(nèi)核調(diào)用程序
    萬物皆可IP的時(shí)代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
    強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
    核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
    試論我國(guó)未決羈押程序的立法完善
    基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
    Linux內(nèi)核mmap保護(hù)機(jī)制研究
    LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
    “程序猿”的生活什么樣
    英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
    基于系統(tǒng)調(diào)用的惡意軟件檢測(cè)技術(shù)研究
    窝窝影院91人妻| 久热这里只有精品99| av中文乱码字幕在线| 不卡一级毛片| 久久精品人妻少妇| 亚洲美女黄片视频| 国内毛片毛片毛片毛片毛片| 99热6这里只有精品| 高潮久久久久久久久久久不卡| 亚洲va日本ⅴa欧美va伊人久久| 日韩免费av在线播放| 国产精品,欧美在线| 老鸭窝网址在线观看| 欧美一级毛片孕妇| 亚洲一区二区三区不卡视频| 99国产精品一区二区三区| 国产午夜精品久久久久久| 国产三级在线视频| 国产亚洲av高清不卡| 日日爽夜夜爽网站| 欧美中文综合在线视频| 亚洲欧美精品综合久久99| 久久精品国产99精品国产亚洲性色| e午夜精品久久久久久久| 亚洲第一欧美日韩一区二区三区| √禁漫天堂资源中文www| 久久人妻av系列| 99久久99久久久精品蜜桃| 成人国产综合亚洲| 麻豆久久精品国产亚洲av| 波多野结衣高清无吗| aaaaa片日本免费| e午夜精品久久久久久久| 波多野结衣巨乳人妻| 在线观看www视频免费| 婷婷六月久久综合丁香| 亚洲九九香蕉| 亚洲精品久久国产高清桃花| 久久人妻av系列| 成人一区二区视频在线观看| 12—13女人毛片做爰片一| 亚洲男人天堂网一区| 这个男人来自地球电影免费观看| 久久久久久久久免费视频了| 日韩免费av在线播放| 日韩三级视频一区二区三区| 精品一区二区三区四区五区乱码| 不卡av一区二区三区| 久久国产乱子伦精品免费另类| 久久人妻福利社区极品人妻图片| 亚洲avbb在线观看| 国产精品免费视频内射| 美女免费视频网站| 亚洲国产精品成人综合色| 成年女人毛片免费观看观看9| 好看av亚洲va欧美ⅴa在| 精品人妻1区二区| 成人亚洲精品一区在线观看| 精品欧美一区二区三区在线| 手机成人av网站| 啦啦啦免费观看视频1| 免费看美女性在线毛片视频| 久久久国产成人精品二区| 成人永久免费在线观看视频| 久久国产精品男人的天堂亚洲| 黄频高清免费视频| 午夜久久久久精精品| 又紧又爽又黄一区二区| 亚洲av成人av| 热99re8久久精品国产| 真人做人爱边吃奶动态| 波多野结衣av一区二区av| 少妇裸体淫交视频免费看高清 | 久久香蕉激情| 99国产精品99久久久久| 日本五十路高清| 日韩视频一区二区在线观看| 精品午夜福利视频在线观看一区| 亚洲精品一卡2卡三卡4卡5卡| 男女做爰动态图高潮gif福利片| 久久亚洲真实| 亚洲在线自拍视频| 欧美一区二区精品小视频在线| 女生性感内裤真人,穿戴方法视频| 后天国语完整版免费观看| 亚洲欧美日韩高清在线视频| 久久久久久免费高清国产稀缺| 久久久久久久久久黄片| 久久这里只有精品19| 99久久99久久久精品蜜桃| 国产亚洲精品第一综合不卡| 99国产精品一区二区蜜桃av| 日本一本二区三区精品| 午夜福利高清视频| 制服丝袜大香蕉在线| 久久久国产成人精品二区| 亚洲最大成人中文| 精品乱码久久久久久99久播| 欧美日韩福利视频一区二区| 搞女人的毛片| 亚洲激情在线av| 免费看十八禁软件| 一级毛片女人18水好多| 女人高潮潮喷娇喘18禁视频| 日韩欧美免费精品| svipshipincom国产片| 黑人巨大精品欧美一区二区mp4| 在线免费观看的www视频| 男人操女人黄网站| 精品国产国语对白av| 色在线成人网| 视频在线观看一区二区三区| 一级毛片精品| 亚洲成人精品中文字幕电影| 一区二区三区精品91| 国内精品久久久久精免费| 12—13女人毛片做爰片一| 亚洲av电影在线进入| 操出白浆在线播放| 久久久久国产精品人妻aⅴ院| 婷婷六月久久综合丁香| 欧美日韩一级在线毛片| 搞女人的毛片| 亚洲久久久国产精品| 男人操女人黄网站| 搞女人的毛片| 一进一出好大好爽视频| av福利片在线| 99久久99久久久精品蜜桃| 国产亚洲精品第一综合不卡| 嫁个100分男人电影在线观看| 国产激情欧美一区二区| 男女午夜视频在线观看| 成人午夜高清在线视频 | 国产三级黄色录像| aaaaa片日本免费| 日韩精品中文字幕看吧| 国产成年人精品一区二区| 99久久国产精品久久久| 亚洲色图av天堂| 国产又色又爽无遮挡免费看| 俺也久久电影网| 欧洲精品卡2卡3卡4卡5卡区| 12—13女人毛片做爰片一| 亚洲av日韩精品久久久久久密| 国产国语露脸激情在线看| 亚洲av成人一区二区三| 黄色女人牲交| 亚洲人成伊人成综合网2020| 国产亚洲精品久久久久久毛片| 久久香蕉国产精品| 亚洲男人的天堂狠狠| 成人特级黄色片久久久久久久| 变态另类丝袜制服| 熟女少妇亚洲综合色aaa.| 午夜两性在线视频| 中文字幕另类日韩欧美亚洲嫩草| 观看免费一级毛片| 无遮挡黄片免费观看| 夜夜爽天天搞| 久久精品国产综合久久久| 久久精品夜夜夜夜夜久久蜜豆 | 精品一区二区三区四区五区乱码| 国产精品亚洲一级av第二区| 精品国产乱码久久久久久男人| 久久伊人香网站| 精品福利观看| 亚洲欧美日韩无卡精品| 99re在线观看精品视频| 最近最新中文字幕大全免费视频| 国产成人影院久久av| 亚洲人成电影免费在线| 亚洲av电影不卡..在线观看| 精品第一国产精品| 色综合婷婷激情| 国产午夜福利久久久久久| 村上凉子中文字幕在线| 女性生殖器流出的白浆| 亚洲人成电影免费在线| 九色国产91popny在线| 久热爱精品视频在线9| 好男人电影高清在线观看| 男女床上黄色一级片免费看| 桃红色精品国产亚洲av| 日本在线视频免费播放| 亚洲五月色婷婷综合| 婷婷六月久久综合丁香| 最近最新免费中文字幕在线| 午夜久久久在线观看| 国产精品99久久99久久久不卡| 中文字幕人成人乱码亚洲影| 亚洲欧美一区二区三区黑人| 亚洲人成伊人成综合网2020| 久久国产精品影院| 淫秽高清视频在线观看| 黑人欧美特级aaaaaa片| 99re在线观看精品视频| av福利片在线| 成人国产综合亚洲| 叶爱在线成人免费视频播放| 中亚洲国语对白在线视频| 亚洲成av人片免费观看| 国产成人av激情在线播放| 久久香蕉精品热| 啦啦啦免费观看视频1| 国产成人精品久久二区二区91| 在线观看日韩欧美| 国产精品野战在线观看| 久久精品91蜜桃| 1024香蕉在线观看| 久久九九热精品免费| 制服丝袜大香蕉在线| 最近最新中文字幕大全电影3 | 色播亚洲综合网| 国产精品电影一区二区三区| 久久天堂一区二区三区四区| 精品久久蜜臀av无| 18禁观看日本| 免费看十八禁软件| 色老头精品视频在线观看| 一二三四社区在线视频社区8| 成人国语在线视频| 老熟妇仑乱视频hdxx| 日韩av在线大香蕉| 无限看片的www在线观看| 免费电影在线观看免费观看| 国产v大片淫在线免费观看| 在线观看免费视频日本深夜| 在线免费观看的www视频| 欧美成人性av电影在线观看| 波多野结衣av一区二区av| 十八禁网站免费在线| 在线观看午夜福利视频| xxx96com| 午夜视频精品福利| 国产精品自产拍在线观看55亚洲| 性欧美人与动物交配| 激情在线观看视频在线高清| 国产主播在线观看一区二区| 精品久久久久久久末码| 久久热在线av| 久久久久久九九精品二区国产 | 久久久久久国产a免费观看| 久久这里只有精品19| 成人一区二区视频在线观看| 12—13女人毛片做爰片一| 亚洲av美国av| 禁无遮挡网站| 亚洲精品av麻豆狂野| 男人舔奶头视频| 又紧又爽又黄一区二区| 两个人免费观看高清视频| 欧美成人一区二区免费高清观看 | 日韩视频一区二区在线观看| 午夜久久久在线观看| 侵犯人妻中文字幕一二三四区| 久久精品影院6| 亚洲av电影不卡..在线观看| 久久久久久免费高清国产稀缺| 哪里可以看免费的av片| 精品欧美一区二区三区在线| 成年版毛片免费区| 亚洲精品粉嫩美女一区| 日本撒尿小便嘘嘘汇集6| 99久久99久久久精品蜜桃| 亚洲 国产 在线| 中文字幕另类日韩欧美亚洲嫩草| 欧美一级毛片孕妇| 久久婷婷成人综合色麻豆| 亚洲精品中文字幕一二三四区| 最近最新中文字幕大全电影3 | 精品免费久久久久久久清纯| 国产又黄又爽又无遮挡在线| 亚洲国产欧美日韩在线播放| av有码第一页| 成熟少妇高潮喷水视频| 777久久人妻少妇嫩草av网站| 国产三级黄色录像| 热99re8久久精品国产| 亚洲国产精品合色在线| 亚洲久久久国产精品| 欧美黄色淫秽网站| 欧美激情久久久久久爽电影| 日韩欧美一区二区三区在线观看| 久久精品国产综合久久久| 国产一级毛片七仙女欲春2 | 亚洲男人的天堂狠狠| 男人舔奶头视频| 亚洲五月婷婷丁香| 免费在线观看视频国产中文字幕亚洲| 男女做爰动态图高潮gif福利片| 听说在线观看完整版免费高清| 女警被强在线播放| 黄色毛片三级朝国网站| 动漫黄色视频在线观看| 曰老女人黄片| 国产91精品成人一区二区三区| 国产黄色小视频在线观看| www国产在线视频色| 在线观看66精品国产| 亚洲av日韩精品久久久久久密| 精品久久久久久成人av| 亚洲成人久久性| 色综合站精品国产| 国产久久久一区二区三区| 12—13女人毛片做爰片一| 亚洲aⅴ乱码一区二区在线播放 | 欧美一级毛片孕妇| 变态另类成人亚洲欧美熟女| 国产黄a三级三级三级人| 精品久久蜜臀av无| 国产亚洲精品久久久久久毛片| 精品免费久久久久久久清纯| 看免费av毛片| 99re在线观看精品视频| 99精品久久久久人妻精品| netflix在线观看网站| 精品国产美女av久久久久小说| 亚洲免费av在线视频| 久久国产精品影院| 免费女性裸体啪啪无遮挡网站| 黄片播放在线免费| 精品少妇一区二区三区视频日本电影| 嫩草影院精品99| 高清在线国产一区| 日本五十路高清| 啪啪无遮挡十八禁网站| 丁香六月欧美| 久久精品国产清高在天天线| 精品无人区乱码1区二区| 免费在线观看亚洲国产| 美女 人体艺术 gogo| 国产成+人综合+亚洲专区| 国产私拍福利视频在线观看| 狂野欧美激情性xxxx| 国产成人欧美| 性色av乱码一区二区三区2| 亚洲第一欧美日韩一区二区三区| 精品福利观看| 国产一卡二卡三卡精品| 欧美乱妇无乱码| 亚洲国产日韩欧美精品在线观看 | 久久久久久人人人人人| 99国产综合亚洲精品| 亚洲欧洲精品一区二区精品久久久| 久久久久久人人人人人| 人成视频在线观看免费观看| 最近最新中文字幕大全电影3 | 亚洲精品中文字幕一二三四区| 久久热在线av| 亚洲欧美日韩无卡精品| 又大又爽又粗| 美国免费a级毛片| 久久久久久久久久黄片| 少妇的丰满在线观看| 老汉色∧v一级毛片| 色精品久久人妻99蜜桃| 中文字幕精品免费在线观看视频| 丰满的人妻完整版| 欧美成人一区二区免费高清观看 | 在线av久久热| 中文字幕av电影在线播放| 12—13女人毛片做爰片一| 亚洲黑人精品在线| 亚洲精品国产一区二区精华液| 一区二区三区高清视频在线| 亚洲七黄色美女视频| 夜夜躁狠狠躁天天躁| 亚洲自拍偷在线| 亚洲五月婷婷丁香| 亚洲最大成人中文| 19禁男女啪啪无遮挡网站| 成人三级做爰电影| 伊人久久大香线蕉亚洲五| a级毛片在线看网站| 亚洲中文日韩欧美视频| 国产野战对白在线观看| 91国产中文字幕| 在线观看舔阴道视频| 88av欧美| 国产v大片淫在线免费观看| 亚洲精品中文字幕在线视频| 丝袜美腿诱惑在线| 精品久久久久久久久久免费视频| 波多野结衣av一区二区av| 欧美日韩一级在线毛片| 精品福利观看| 18禁美女被吸乳视频| 亚洲 欧美一区二区三区| 久久精品夜夜夜夜夜久久蜜豆 | 午夜久久久在线观看| 韩国精品一区二区三区| 国产欧美日韩一区二区三| 国产精品av久久久久免费| 在线观看www视频免费| av在线天堂中文字幕| 99热6这里只有精品| 国产精品一区二区精品视频观看| 亚洲无线在线观看| 两个人看的免费小视频| 日韩精品免费视频一区二区三区| 午夜老司机福利片| 亚洲五月色婷婷综合| 精品免费久久久久久久清纯| 欧美最黄视频在线播放免费| 久久精品夜夜夜夜夜久久蜜豆 | 国产黄a三级三级三级人| 国产精品一区二区免费欧美| 精品国产美女av久久久久小说| svipshipincom国产片| 一区二区日韩欧美中文字幕| 欧美中文日本在线观看视频| 国产精品综合久久久久久久免费| 99在线视频只有这里精品首页| 亚洲专区中文字幕在线| 亚洲免费av在线视频| www日本黄色视频网| 国产精品 欧美亚洲| 一进一出好大好爽视频| 免费观看精品视频网站| 亚洲狠狠婷婷综合久久图片| 亚洲va日本ⅴa欧美va伊人久久| 亚洲黑人精品在线| 国产午夜福利久久久久久| 亚洲人成电影免费在线| 天天躁狠狠躁夜夜躁狠狠躁| 高清在线国产一区| 国产黄a三级三级三级人| 99久久99久久久精品蜜桃| 搡老妇女老女人老熟妇| 黑人巨大精品欧美一区二区mp4| 亚洲五月婷婷丁香| 97碰自拍视频| 国产v大片淫在线免费观看| 男女做爰动态图高潮gif福利片| 两个人看的免费小视频| 午夜福利免费观看在线| 亚洲最大成人中文| 男人的好看免费观看在线视频 | 国产精品日韩av在线免费观看| 国产日本99.免费观看| 欧美又色又爽又黄视频| 熟女少妇亚洲综合色aaa.| 日韩欧美一区视频在线观看| 人妻丰满熟妇av一区二区三区| 欧美性猛交黑人性爽| 无限看片的www在线观看| 亚洲国产欧美一区二区综合| 一边摸一边做爽爽视频免费| 可以在线观看的亚洲视频| 国产野战对白在线观看| 丰满人妻熟妇乱又伦精品不卡| www.999成人在线观看| 免费一级毛片在线播放高清视频| 亚洲av第一区精品v没综合| 日本成人三级电影网站| 久9热在线精品视频| 亚洲真实伦在线观看| 欧美一级毛片孕妇| 欧美黄色片欧美黄色片| 9191精品国产免费久久| 欧美zozozo另类| 成人特级黄色片久久久久久久| 在线观看日韩欧美| 久久国产乱子伦精品免费另类| 国产精品免费视频内射| 久久久国产成人免费| 午夜福利在线在线| 国产激情久久老熟女| 亚洲av美国av| 久久久久免费精品人妻一区二区 | 好看av亚洲va欧美ⅴa在| 免费搜索国产男女视频| 成人av一区二区三区在线看| 久久草成人影院| 91麻豆精品激情在线观看国产| 国内精品久久久久精免费| 日韩视频一区二区在线观看| 黄色成人免费大全| bbb黄色大片| 啦啦啦免费观看视频1| 成人18禁高潮啪啪吃奶动态图| 欧美日韩中文字幕国产精品一区二区三区| 亚洲国产精品999在线| 日本在线视频免费播放| 琪琪午夜伦伦电影理论片6080| 天天一区二区日本电影三级| 亚洲成av人片免费观看| 亚洲自拍偷在线| 正在播放国产对白刺激| 女生性感内裤真人,穿戴方法视频| 欧美绝顶高潮抽搐喷水| 1024视频免费在线观看| 日本免费一区二区三区高清不卡| 国产亚洲欧美精品永久| 国产精品一区二区三区四区久久 | 琪琪午夜伦伦电影理论片6080| 欧美精品啪啪一区二区三区| 精品欧美国产一区二区三| 村上凉子中文字幕在线| 久久久久精品国产欧美久久久| 国产亚洲欧美在线一区二区| 欧美日韩瑟瑟在线播放| tocl精华| 丁香欧美五月| 久久久久久久久免费视频了| 亚洲九九香蕉| 欧美成人午夜精品| 两人在一起打扑克的视频| 国产高清激情床上av| 中文字幕av电影在线播放| 成人午夜高清在线视频 | 国产单亲对白刺激| 美女高潮喷水抽搐中文字幕| 亚洲国产日韩欧美精品在线观看 | 波多野结衣高清无吗| www.精华液| 国产三级黄色录像| 777久久人妻少妇嫩草av网站| av福利片在线| 亚洲片人在线观看| 波多野结衣巨乳人妻| 老鸭窝网址在线观看| 天天躁夜夜躁狠狠躁躁| 法律面前人人平等表现在哪些方面| 长腿黑丝高跟| 激情在线观看视频在线高清| 可以在线观看的亚洲视频| 日韩精品免费视频一区二区三区| 国产精品野战在线观看| av超薄肉色丝袜交足视频| 国产爱豆传媒在线观看 | 又紧又爽又黄一区二区| 国产日本99.免费观看| 国产私拍福利视频在线观看| 亚洲一区二区三区不卡视频| 久久久久九九精品影院| 国产野战对白在线观看| 精品一区二区三区av网在线观看| 精品免费久久久久久久清纯| 亚洲国产欧美日韩在线播放| 美女扒开内裤让男人捅视频| 19禁男女啪啪无遮挡网站| 老熟妇乱子伦视频在线观看| 99久久国产精品久久久| 亚洲激情在线av| 国产亚洲精品一区二区www| 亚洲五月婷婷丁香| 国产在线观看jvid| 国产激情欧美一区二区| cao死你这个sao货| 日韩精品青青久久久久久| 正在播放国产对白刺激| 91成人精品电影| 午夜久久久久精精品| 久久久精品欧美日韩精品| 亚洲熟女毛片儿| 久久精品国产99精品国产亚洲性色| 少妇被粗大的猛进出69影院| 国产激情偷乱视频一区二区| 男女视频在线观看网站免费 | 美女高潮到喷水免费观看| 午夜激情av网站| 亚洲人成伊人成综合网2020| 精品乱码久久久久久99久播| 少妇熟女aⅴ在线视频| 麻豆国产av国片精品| 亚洲精品久久成人aⅴ小说| 人人妻人人看人人澡| 这个男人来自地球电影免费观看| 亚洲真实伦在线观看| 亚洲在线自拍视频| 亚洲国产精品成人综合色| 日本免费一区二区三区高清不卡| 黄色丝袜av网址大全| 99国产综合亚洲精品| 亚洲精品国产区一区二| 亚洲av电影不卡..在线观看| 亚洲av日韩精品久久久久久密| 黑人巨大精品欧美一区二区mp4| 十分钟在线观看高清视频www| 欧美黄色片欧美黄色片| 又黄又爽又免费观看的视频| 三级毛片av免费| 色综合亚洲欧美另类图片| 欧美乱色亚洲激情| 国产av又大| 久久精品aⅴ一区二区三区四区| 欧美日本视频| 成人手机av| 亚洲成人精品中文字幕电影| 人妻丰满熟妇av一区二区三区| 母亲3免费完整高清在线观看| av中文乱码字幕在线| 亚洲人成网站高清观看| 大型av网站在线播放| 神马国产精品三级电影在线观看 | 欧美亚洲日本最大视频资源| 亚洲avbb在线观看| 极品教师在线免费播放| 久久婷婷成人综合色麻豆| 日本在线视频免费播放| 午夜亚洲福利在线播放| 大型黄色视频在线免费观看| 91大片在线观看| 18禁美女被吸乳视频| 韩国精品一区二区三区| 精品一区二区三区av网在线观看| 母亲3免费完整高清在线观看| 欧美日本亚洲视频在线播放| 高潮久久久久久久久久久不卡| 色精品久久人妻99蜜桃| 国产成人系列免费观看| 热re99久久国产66热| 男人的好看免费观看在线视频 |