• <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字幕亚洲| 五月伊人婷婷丁香| 精品久久久久久久毛片微露脸| 亚洲七黄色美女视频| 亚洲国产欧美一区二区综合| 国产精品av久久久久免费| 亚洲一卡2卡3卡4卡5卡精品中文| 国产人伦9x9x在线观看| 激情在线观看视频在线高清| 精品人妻1区二区| 国产精品香港三级国产av潘金莲| 国产亚洲av嫩草精品影院| 中国美女看黄片| 亚洲欧美精品综合久久99| 真人做人爱边吃奶动态| 日本黄大片高清| 色噜噜av男人的天堂激情| 女生性感内裤真人,穿戴方法视频| 九色成人免费人妻av| 日韩高清综合在线| 国产精品 欧美亚洲| 亚洲国产欧美网| 中文亚洲av片在线观看爽| 精品久久久久久,| 亚洲熟妇熟女久久| 成年人黄色毛片网站| 性欧美人与动物交配| 成人一区二区视频在线观看| 一区二区三区激情视频| 丰满的人妻完整版| 99国产综合亚洲精品| 午夜免费激情av| 久久九九热精品免费| 婷婷丁香在线五月| 白带黄色成豆腐渣| 日韩欧美精品v在线| 99在线人妻在线中文字幕| 母亲3免费完整高清在线观看| 久久这里只有精品19| 亚洲第一电影网av| 少妇熟女aⅴ在线视频| 色哟哟哟哟哟哟| 少妇粗大呻吟视频| 人人妻人人澡欧美一区二区| avwww免费| 欧美日韩中文字幕国产精品一区二区三区| 国产成人影院久久av| 狂野欧美激情性xxxx| 啦啦啦韩国在线观看视频| 国产精品免费视频内射| 婷婷六月久久综合丁香| 欧美zozozo另类| 国产v大片淫在线免费观看| 亚洲中文日韩欧美视频| 亚洲av成人不卡在线观看播放网| 美女高潮喷水抽搐中文字幕| 精品久久久久久久末码| 一级作爱视频免费观看| 中文字幕久久专区| 亚洲精品中文字幕在线视频| 国产精品一及| 国产成人影院久久av| 级片在线观看| 一区二区三区激情视频| 18禁国产床啪视频网站| 十八禁人妻一区二区| 欧美成人免费av一区二区三区| 国产99久久九九免费精品| 一二三四在线观看免费中文在| 美女免费视频网站| 国内毛片毛片毛片毛片毛片| 可以在线观看的亚洲视频| 精品第一国产精品| 国产精品久久久久久亚洲av鲁大| 男女之事视频高清在线观看| 亚洲av电影不卡..在线观看| 久久久久国产精品人妻aⅴ院| 欧美+亚洲+日韩+国产| 亚洲男人天堂网一区| 色精品久久人妻99蜜桃| 国产久久久一区二区三区| 婷婷精品国产亚洲av| 男人舔奶头视频| 国内揄拍国产精品人妻在线| 日韩欧美精品v在线| 欧美绝顶高潮抽搐喷水| 曰老女人黄片| 精品少妇一区二区三区视频日本电影| 亚洲中文字幕一区二区三区有码在线看 | 无遮挡黄片免费观看| 日韩 欧美 亚洲 中文字幕| 波多野结衣高清作品| 男女之事视频高清在线观看| 叶爱在线成人免费视频播放| 丝袜人妻中文字幕| 亚洲第一欧美日韩一区二区三区| 99精品在免费线老司机午夜| 不卡av一区二区三区| 动漫黄色视频在线观看| 人人妻人人澡欧美一区二区| 亚洲av美国av| 久久精品国产亚洲av高清一级| 一本久久中文字幕| 亚洲成av人片免费观看| 国产成人欧美在线观看| 色尼玛亚洲综合影院| 国产麻豆成人av免费视频| 国产69精品久久久久777片 | 欧美黑人巨大hd| 久久久国产成人免费| 夜夜夜夜夜久久久久| 日韩欧美在线二视频| 一级毛片女人18水好多| 老司机深夜福利视频在线观看| 日韩精品中文字幕看吧| 亚洲精品在线美女| 午夜福利18| 亚洲激情在线av| 视频区欧美日本亚洲| 亚洲精品中文字幕一二三四区| 午夜福利视频1000在线观看| 国产日本99.免费观看| 色综合欧美亚洲国产小说| 久久国产精品影院| 日本a在线网址| 午夜精品久久久久久毛片777| 男女那种视频在线观看| 999久久久精品免费观看国产| 美女黄网站色视频| 男人的好看免费观看在线视频 | 欧美黄色片欧美黄色片| 后天国语完整版免费观看| 久久国产精品人妻蜜桃| 18禁观看日本| a级毛片a级免费在线| 麻豆国产av国片精品| 亚洲av片天天在线观看| 99国产极品粉嫩在线观看| 九九热线精品视视频播放| 国产精品美女特级片免费视频播放器 | 俄罗斯特黄特色一大片| 成年免费大片在线观看| 亚洲最大成人中文| 国产精品久久久久久精品电影| 久久香蕉激情| 亚洲 欧美一区二区三区| 免费在线观看影片大全网站| 琪琪午夜伦伦电影理论片6080| 欧美乱妇无乱码| 级片在线观看| 亚洲精品在线美女| 免费在线观看完整版高清| 男女视频在线观看网站免费 | 亚洲成人免费电影在线观看| av在线播放免费不卡| 亚洲国产欧美一区二区综合| 色尼玛亚洲综合影院| 精品福利观看| 免费av毛片视频| a级毛片在线看网站| 精品久久久久久成人av| netflix在线观看网站| 亚洲精品一区av在线观看| 一夜夜www| 熟女少妇亚洲综合色aaa.| av免费在线观看网站| 久久欧美精品欧美久久欧美| 免费看美女性在线毛片视频| 亚洲欧美精品综合久久99| 搞女人的毛片| 在线观看一区二区三区| 中文字幕熟女人妻在线| 精品欧美一区二区三区在线| 亚洲最大成人中文| 男女做爰动态图高潮gif福利片| 久久亚洲真实| 精品久久久久久成人av| 亚洲精品一卡2卡三卡4卡5卡| 香蕉av资源在线| 欧美成人一区二区免费高清观看 | 校园春色视频在线观看| 精品不卡国产一区二区三区| www.999成人在线观看| 国产亚洲av嫩草精品影院| 男女那种视频在线观看| 最好的美女福利视频网| 一边摸一边抽搐一进一小说| 久久久精品大字幕| 丰满人妻熟妇乱又伦精品不卡| 制服丝袜大香蕉在线| 亚洲精品国产一区二区精华液| 欧美色视频一区免费| 99riav亚洲国产免费| 久久久久九九精品影院| 欧美日韩一级在线毛片| 免费看日本二区| 亚洲 欧美一区二区三区| 在线观看66精品国产| 亚洲欧美日韩无卡精品| 欧美一区二区国产精品久久精品 | 性色av乱码一区二区三区2| 麻豆国产av国片精品| 亚洲第一电影网av| 99国产精品一区二区三区| 我的老师免费观看完整版| 亚洲美女视频黄频| av在线天堂中文字幕| 一本一本综合久久| 欧美高清成人免费视频www| 日韩欧美一区二区三区在线观看| 国产69精品久久久久777片 | 一a级毛片在线观看| 一二三四社区在线视频社区8| 高清毛片免费观看视频网站| 成人精品一区二区免费| 亚洲精品色激情综合| 在线观看日韩欧美| 亚洲最大成人中文| 床上黄色一级片| 亚洲成a人片在线一区二区| 成人高潮视频无遮挡免费网站| 无遮挡黄片免费观看| 一个人观看的视频www高清免费观看 | 午夜免费激情av| 搡老熟女国产l中国老女人| 精品国产美女av久久久久小说| aaaaa片日本免费| 精品少妇一区二区三区视频日本电影| 精品国产乱码久久久久久男人| 最近最新中文字幕大全电影3| 女警被强在线播放| 真人做人爱边吃奶动态| 亚洲精品美女久久久久99蜜臀| xxxwww97欧美| 每晚都被弄得嗷嗷叫到高潮| 桃红色精品国产亚洲av| 精品福利观看| 日韩欧美免费精品| 久久伊人香网站| 日韩欧美国产一区二区入口| 免费搜索国产男女视频| 黄色毛片三级朝国网站| 搡老岳熟女国产| 午夜福利在线观看吧| 精品国产乱子伦一区二区三区| 国产精品综合久久久久久久免费| 国产精品精品国产色婷婷| 91老司机精品| 久久久久久九九精品二区国产 | 看片在线看免费视频| 搡老岳熟女国产| 人成视频在线观看免费观看| 亚洲天堂国产精品一区在线| 大型黄色视频在线免费观看| 99riav亚洲国产免费| 亚洲成av人片在线播放无| 一a级毛片在线观看| 后天国语完整版免费观看| 一级毛片精品| 老司机在亚洲福利影院| 国产一区二区在线观看日韩 | 精品欧美一区二区三区在线| 一区二区三区激情视频| 欧美日韩乱码在线| 精品久久久久久久久久久久久| 欧美一区二区精品小视频在线| 国产成人精品久久二区二区91| 精品久久久久久久人妻蜜臀av| 亚洲成人国产一区在线观看| www.熟女人妻精品国产| 久久精品夜夜夜夜夜久久蜜豆 | 黄色片一级片一级黄色片| 脱女人内裤的视频| 色在线成人网| 一本一本综合久久| 欧美不卡视频在线免费观看 | 亚洲av成人一区二区三| 久久天堂一区二区三区四区| 可以免费在线观看a视频的电影网站| 白带黄色成豆腐渣| 亚洲性夜色夜夜综合| svipshipincom国产片| 精品久久久久久,| 女警被强在线播放| 国产高清视频在线播放一区| 真人一进一出gif抽搐免费| 国产精品国产高清国产av| 午夜福利免费观看在线| 亚洲av中文字字幕乱码综合| 亚洲,欧美精品.| 欧美成人免费av一区二区三区| 夜夜看夜夜爽夜夜摸| 舔av片在线| 美女扒开内裤让男人捅视频| 亚洲国产精品sss在线观看| 欧美乱妇无乱码| 亚洲欧美日韩东京热| 中文字幕人妻丝袜一区二区| 国内久久婷婷六月综合欲色啪| 国产野战对白在线观看| 真人一进一出gif抽搐免费| 搞女人的毛片| 女生性感内裤真人,穿戴方法视频| www.精华液| 18禁观看日本| 精品久久久久久久末码| 日韩国内少妇激情av| 国产亚洲欧美在线一区二区| 国产人伦9x9x在线观看| 巨乳人妻的诱惑在线观看| 欧美日韩一级在线毛片| 日日夜夜操网爽| 国产高清视频在线播放一区| 日韩欧美免费精品| 99国产精品99久久久久| 婷婷六月久久综合丁香| 成年免费大片在线观看| 每晚都被弄得嗷嗷叫到高潮| 18禁裸乳无遮挡免费网站照片| 9191精品国产免费久久| 99热只有精品国产| 成人三级做爰电影| 丁香欧美五月| x7x7x7水蜜桃| 99久久久亚洲精品蜜臀av| 一个人观看的视频www高清免费观看 | 亚洲第一欧美日韩一区二区三区| 国产在线观看jvid| 成人亚洲精品av一区二区| 在线视频色国产色| 夜夜夜夜夜久久久久| 男人舔奶头视频| 女警被强在线播放| 国产精品影院久久| 亚洲免费av在线视频| 久久精品人妻少妇| 欧美色欧美亚洲另类二区| 97碰自拍视频| 很黄的视频免费| 成人国产一区最新在线观看| 亚洲人与动物交配视频| 日韩欧美国产一区二区入口| e午夜精品久久久久久久| 国产一区二区三区视频了| 日韩大码丰满熟妇| 成人国产综合亚洲| 日本 欧美在线| 国产午夜精品论理片| 99热只有精品国产| 午夜成年电影在线免费观看| 亚洲欧美日韩无卡精品| 99久久精品国产亚洲精品| 欧美又色又爽又黄视频| 久久午夜亚洲精品久久| 欧美成人午夜精品| 啪啪无遮挡十八禁网站| 日韩大尺度精品在线看网址| 国产免费av片在线观看野外av| 欧美丝袜亚洲另类 | 狂野欧美激情性xxxx| 老熟妇仑乱视频hdxx| 男女视频在线观看网站免费 | 欧美在线一区亚洲| 国产精品亚洲美女久久久| 国产精品一区二区三区四区久久| 国产激情久久老熟女| 国产野战对白在线观看| 99热6这里只有精品| 久久精品91蜜桃| 亚洲欧美一区二区三区黑人| 亚洲午夜理论影院| 国产精品一区二区三区四区久久| 91麻豆av在线| 亚洲片人在线观看| 欧美另类亚洲清纯唯美| 国产野战对白在线观看| xxxwww97欧美| 男女午夜视频在线观看| 老司机午夜十八禁免费视频| 男女午夜视频在线观看| 久久久精品国产亚洲av高清涩受| 我的老师免费观看完整版| 18禁裸乳无遮挡免费网站照片| 曰老女人黄片| 亚洲一码二码三码区别大吗| 亚洲欧美日韩东京热| 亚洲国产欧美人成| 亚洲专区国产一区二区| 免费人成视频x8x8入口观看| 免费无遮挡裸体视频| 日韩欧美免费精品| 亚洲av成人精品一区久久| 亚洲成人精品中文字幕电影| 亚洲成人久久爱视频| 色哟哟哟哟哟哟| 两个人视频免费观看高清| 亚洲国产日韩欧美精品在线观看 | 国产av又大| 全区人妻精品视频| 午夜福利视频1000在线观看| 精品少妇一区二区三区视频日本电影| 国产精品,欧美在线| 国产av一区在线观看免费| 悠悠久久av| 日韩高清综合在线| 熟女电影av网| 麻豆av在线久日| 国产精品乱码一区二三区的特点| 男女视频在线观看网站免费 | 久久精品夜夜夜夜夜久久蜜豆 | 欧美日韩国产亚洲二区| 国产一区二区激情短视频| 国产成人啪精品午夜网站| 在线视频色国产色| 久久久国产成人精品二区| 99国产极品粉嫩在线观看| 一进一出抽搐动态| 一区二区三区高清视频在线| 国产真实乱freesex| 中文亚洲av片在线观看爽| 一边摸一边抽搐一进一小说| 99国产精品一区二区三区| 最近最新中文字幕大全免费视频| 一本综合久久免费| 99在线人妻在线中文字幕| www.熟女人妻精品国产| 亚洲精品美女久久久久99蜜臀| 亚洲在线自拍视频| 国产成年人精品一区二区| 欧美大码av| 黄色女人牲交| 一级毛片女人18水好多| 国产三级黄色录像| 亚洲中文日韩欧美视频| 变态另类丝袜制服| 亚洲国产日韩欧美精品在线观看 | 此物有八面人人有两片| 美女 人体艺术 gogo| 免费在线观看影片大全网站| 十八禁人妻一区二区| 一级黄色大片毛片| 国产成人影院久久av| 黑人巨大精品欧美一区二区mp4| 亚洲精华国产精华精| 又黄又爽又免费观看的视频| 亚洲人成77777在线视频| 日韩大尺度精品在线看网址| 黑人巨大精品欧美一区二区mp4| 一级毛片高清免费大全| 色综合站精品国产| 欧美乱色亚洲激情| 搡老妇女老女人老熟妇| 天天一区二区日本电影三级| 亚洲欧美一区二区三区黑人| 成人高潮视频无遮挡免费网站| 精品久久久久久久末码| 女同久久另类99精品国产91| 毛片女人毛片| 一进一出抽搐gif免费好疼| 黄片大片在线免费观看| 亚洲全国av大片| x7x7x7水蜜桃| 天天躁狠狠躁夜夜躁狠狠躁| 欧美黄色淫秽网站| 亚洲专区中文字幕在线| 在线观看日韩欧美| 99国产极品粉嫩在线观看| 欧美色欧美亚洲另类二区| 日韩中文字幕欧美一区二区| 成人av在线播放网站| 午夜福利高清视频| 三级毛片av免费| 在线视频色国产色| 九色国产91popny在线| 90打野战视频偷拍视频| 亚洲国产精品合色在线| 亚洲精品久久成人aⅴ小说| 在线看三级毛片| 国产一区二区在线观看日韩 | 久久亚洲真实| 久久久久久人人人人人| 欧美成人免费av一区二区三区| 国产精品免费一区二区三区在线| 亚洲av片天天在线观看| 日本 欧美在线| 日韩欧美 国产精品| e午夜精品久久久久久久| 国产av一区二区精品久久| 成人一区二区视频在线观看| а√天堂www在线а√下载| 小说图片视频综合网站| 99热6这里只有精品| avwww免费| 脱女人内裤的视频| 狠狠狠狠99中文字幕| 一边摸一边做爽爽视频免费| 很黄的视频免费| 国产av一区二区精品久久| 亚洲精品av麻豆狂野| 狠狠狠狠99中文字幕| 久久久久久免费高清国产稀缺| 99热6这里只有精品| 国产高清激情床上av| 窝窝影院91人妻| 精品免费久久久久久久清纯| 亚洲精品在线美女| 性欧美人与动物交配| 国产精品,欧美在线| 欧美高清成人免费视频www| 一级片免费观看大全| 老汉色∧v一级毛片| 两人在一起打扑克的视频| 男女做爰动态图高潮gif福利片| 成人欧美大片| 免费搜索国产男女视频| 亚洲专区中文字幕在线| 法律面前人人平等表现在哪些方面| 亚洲熟妇中文字幕五十中出| 超碰成人久久| 久久性视频一级片| 久久国产乱子伦精品免费另类| 级片在线观看| 欧美性猛交╳xxx乱大交人| 亚洲专区国产一区二区| 亚洲人成伊人成综合网2020| 国产欧美日韩一区二区三| 亚洲国产欧美网| 1024视频免费在线观看| www.自偷自拍.com| 精品久久久久久久久久久久久| 精品久久久久久久毛片微露脸| 久热爱精品视频在线9| 中文字幕精品亚洲无线码一区| 在线观看一区二区三区| 国产激情偷乱视频一区二区| 亚洲aⅴ乱码一区二区在线播放 | 欧美日韩亚洲国产一区二区在线观看| 国产精品一区二区三区四区久久| 亚洲欧美日韩东京热| 99在线视频只有这里精品首页| 啦啦啦免费观看视频1| 国产99久久九九免费精品| 亚洲一码二码三码区别大吗| 日韩免费av在线播放| 欧美极品一区二区三区四区| 亚洲中文av在线| 亚洲av五月六月丁香网| 热99re8久久精品国产| 国产精品久久久人人做人人爽| 亚洲av成人一区二区三| 高清毛片免费观看视频网站| 日韩成人在线观看一区二区三区| 怎么达到女性高潮| 免费人成视频x8x8入口观看| 久久精品人妻少妇| 亚洲天堂国产精品一区在线| 欧美日韩乱码在线| 悠悠久久av| 日韩欧美在线二视频| or卡值多少钱| 亚洲成人免费电影在线观看| 免费看日本二区| 亚洲熟妇熟女久久| 国产黄片美女视频| 老司机午夜十八禁免费视频| 黄片小视频在线播放| 超碰成人久久| 操出白浆在线播放| 一进一出好大好爽视频| 国产成+人综合+亚洲专区| 欧美成狂野欧美在线观看| 国产一区二区在线观看日韩 | 我的老师免费观看完整版| 午夜福利成人在线免费观看| 欧美一区二区国产精品久久精品 | 成人午夜高清在线视频| 日本免费一区二区三区高清不卡| 国产av一区在线观看免费| 久久中文字幕一级| 亚洲中文字幕一区二区三区有码在线看 | 久久伊人香网站| 欧美性猛交╳xxx乱大交人| 精品国产超薄肉色丝袜足j| 色综合欧美亚洲国产小说| 色综合站精品国产| 成人特级黄色片久久久久久久| 国产单亲对白刺激| 天堂√8在线中文| 欧美精品亚洲一区二区| 国产真实乱freesex| 少妇被粗大的猛进出69影院| 成人永久免费在线观看视频| 一级作爱视频免费观看| 免费av毛片视频| 不卡av一区二区三区| 亚洲人与动物交配视频| 在线免费观看的www视频| 又黄又爽又免费观看的视频| 中文字幕精品亚洲无线码一区| 亚洲av美国av| 老司机在亚洲福利影院| 夜夜夜夜夜久久久久| АⅤ资源中文在线天堂| 一二三四在线观看免费中文在| 欧美黄色淫秽网站| 亚洲av美国av| 国产乱人伦免费视频| 亚洲免费av在线视频| 亚洲精品粉嫩美女一区| 在线观看66精品国产| 久久草成人影院| 久久久国产精品麻豆| 妹子高潮喷水视频|