• <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ù)研究
    成人18禁高潮啪啪吃奶动态图| 成人亚洲精品一区在线观看| 国产精品久久久久久久久免| 精品久久久精品久久久| 亚洲国产av新网站| 视频在线观看一区二区三区| av有码第一页| 午夜福利,免费看| 成人午夜精彩视频在线观看| 日日啪夜夜爽| 热re99久久精品国产66热6| av不卡在线播放| 在线观看免费高清a一片| 国产精品欧美亚洲77777| 黑人猛操日本美女一级片| 热99国产精品久久久久久7| 可以免费在线观看a视频的电影网站 | 欧美日韩精品成人综合77777| av网站免费在线观看视频| 午夜福利在线免费观看网站| 人妻一区二区av| 一区二区日韩欧美中文字幕| 国产在线一区二区三区精| 婷婷色av中文字幕| 亚洲精品成人av观看孕妇| 丝袜脚勾引网站| 不卡av一区二区三区| 9191精品国产免费久久| 我的亚洲天堂| 97在线视频观看| 国产亚洲午夜精品一区二区久久| 各种免费的搞黄视频| 国产极品粉嫩免费观看在线| 亚洲精品日韩在线中文字幕| 成人亚洲精品一区在线观看| 岛国毛片在线播放| 1024香蕉在线观看| 成人午夜精彩视频在线观看| 国产xxxxx性猛交| 十八禁高潮呻吟视频| 国产欧美日韩一区二区三区在线| 黄网站色视频无遮挡免费观看| 久久精品国产综合久久久| av在线播放精品| 欧美精品av麻豆av| 2018国产大陆天天弄谢| 成人手机av| 精品国产乱码久久久久久男人| 满18在线观看网站| 亚洲精品国产av蜜桃| 777久久人妻少妇嫩草av网站| 久久国内精品自在自线图片| 在线观看免费高清a一片| 精品少妇久久久久久888优播| 免费观看无遮挡的男女| 两个人看的免费小视频| 有码 亚洲区| 亚洲精品国产色婷婷电影| 国产男女内射视频| 丰满乱子伦码专区| www.熟女人妻精品国产| 9色porny在线观看| 校园人妻丝袜中文字幕| 天美传媒精品一区二区| 嫩草影院入口| 精品少妇内射三级| 欧美日韩国产mv在线观看视频| 亚洲视频免费观看视频| 久久久精品94久久精品| 国产精品亚洲av一区麻豆 | 国产精品国产三级专区第一集| 亚洲精品日韩在线中文字幕| freevideosex欧美| 香蕉国产在线看| 99香蕉大伊视频| 人人妻人人澡人人看| 看非洲黑人一级黄片| av福利片在线| 日韩 亚洲 欧美在线| 亚洲天堂av无毛| h视频一区二区三区| 欧美精品高潮呻吟av久久| 国产一区有黄有色的免费视频| 国产精品香港三级国产av潘金莲 | 午夜福利在线观看免费完整高清在| 欧美xxⅹ黑人| 老鸭窝网址在线观看| 午夜日本视频在线| 中文欧美无线码| 亚洲熟女精品中文字幕| av福利片在线| 性色av一级| 亚洲综合精品二区| 久久午夜福利片| 国产在视频线精品| 最近手机中文字幕大全| 一区二区三区乱码不卡18| videossex国产| 又黄又粗又硬又大视频| 欧美日韩精品网址| 日韩中文字幕欧美一区二区 | 91午夜精品亚洲一区二区三区| 久久免费观看电影| 纵有疾风起免费观看全集完整版| 国产av码专区亚洲av| 国产免费现黄频在线看| 99国产综合亚洲精品| 国产精品.久久久| 人体艺术视频欧美日本| 亚洲经典国产精华液单| 日本黄色日本黄色录像| 国产在线视频一区二区| 久久久久精品人妻al黑| 欧美老熟妇乱子伦牲交| 午夜福利,免费看| 欧美人与善性xxx| 国产不卡av网站在线观看| 人人妻人人爽人人添夜夜欢视频| 成人午夜精彩视频在线观看| 国产精品免费视频内射| 天天躁狠狠躁夜夜躁狠狠躁| 久久精品国产鲁丝片午夜精品| 亚洲av综合色区一区| 香蕉国产在线看| 中文天堂在线官网| 亚洲精品自拍成人| 天天躁夜夜躁狠狠久久av| freevideosex欧美| 在线观看免费日韩欧美大片| 久久99蜜桃精品久久| 69精品国产乱码久久久| 最新中文字幕久久久久| 观看av在线不卡| 26uuu在线亚洲综合色| 在线看a的网站| 老熟女久久久| 久久精品国产鲁丝片午夜精品| 韩国高清视频一区二区三区| 久久久久国产精品人妻一区二区| 欧美国产精品va在线观看不卡| 亚洲精品国产av成人精品| 色视频在线一区二区三区| 在线观看美女被高潮喷水网站| 只有这里有精品99| 精品人妻偷拍中文字幕| 亚洲国产精品一区二区三区在线| 欧美在线黄色| 丁香六月天网| 少妇 在线观看| 精品少妇一区二区三区视频日本电影 | 99九九在线精品视频| 久久影院123| av在线播放精品| 嫩草影院入口| 免费在线观看视频国产中文字幕亚洲 | 观看av在线不卡| 日日撸夜夜添| 国产男女内射视频| 丰满迷人的少妇在线观看| 热re99久久国产66热| 亚洲综合精品二区| 欧美精品亚洲一区二区| 婷婷色av中文字幕| www.自偷自拍.com| 天天躁狠狠躁夜夜躁狠狠躁| 国产成人午夜福利电影在线观看| 久久久久国产网址| 寂寞人妻少妇视频99o| 亚洲激情五月婷婷啪啪| 免费播放大片免费观看视频在线观看| 精品午夜福利在线看| 9色porny在线观看| 日韩免费高清中文字幕av| 久久精品夜色国产| 日本91视频免费播放| 精品亚洲成国产av| 亚洲精品久久成人aⅴ小说| 尾随美女入室| 九草在线视频观看| 美女大奶头黄色视频| 午夜av观看不卡| 亚洲av.av天堂| 久久影院123| 午夜日韩欧美国产| 国产精品久久久久久精品电影小说| 欧美成人午夜精品| av线在线观看网站| 巨乳人妻的诱惑在线观看| 欧美+日韩+精品| 熟女电影av网| 国产精品偷伦视频观看了| 亚洲av男天堂| 久久青草综合色| 一二三四在线观看免费中文在| 久久精品国产鲁丝片午夜精品| 欧美变态另类bdsm刘玥| 看十八女毛片水多多多| 中文字幕人妻丝袜制服| 香蕉国产在线看| 久久婷婷青草| av有码第一页| 午夜日本视频在线| 色吧在线观看| 亚洲精品久久午夜乱码| 色婷婷久久久亚洲欧美| 丝袜在线中文字幕| 97在线人人人人妻| 人妻一区二区av| 日本免费在线观看一区| 久久精品亚洲av国产电影网| 亚洲国产av影院在线观看| 在线观看美女被高潮喷水网站| www日本在线高清视频| 美女视频免费永久观看网站| 亚洲三级黄色毛片| 免费大片黄手机在线观看| 久久99一区二区三区| 国产熟女午夜一区二区三区| 一边亲一边摸免费视频| 久久 成人 亚洲| 亚洲三区欧美一区| videos熟女内射| 欧美日本中文国产一区发布| 国产熟女欧美一区二区| 香蕉国产在线看| 欧美国产精品一级二级三级| 一级毛片我不卡| 亚洲三区欧美一区| 老女人水多毛片| 亚洲国产日韩一区二区| 麻豆av在线久日| 日韩一卡2卡3卡4卡2021年| 黄色怎么调成土黄色| 国产精品一区二区在线不卡| 日日摸夜夜添夜夜爱| 999久久久国产精品视频| 欧美日本中文国产一区发布| 欧美日韩视频精品一区| 国产亚洲欧美精品永久| 久久青草综合色| 少妇人妻精品综合一区二区| tube8黄色片| 岛国毛片在线播放| 婷婷色麻豆天堂久久| 久久这里只有精品19| 久久热在线av| 欧美日韩av久久| 久久久国产欧美日韩av| 九草在线视频观看| 免费人妻精品一区二区三区视频| 国产成人精品婷婷| 国精品久久久久久国模美| 一级a爱视频在线免费观看| 国产成人精品一,二区| 久久国产精品大桥未久av| 亚洲熟女精品中文字幕| 国产男女内射视频| 夜夜骑夜夜射夜夜干| 18禁观看日本| 日本黄色日本黄色录像| 久久99蜜桃精品久久| 午夜激情久久久久久久| 老司机亚洲免费影院| 日韩制服丝袜自拍偷拍| 亚洲男人天堂网一区| av网站免费在线观看视频| 国产一区二区在线观看av| 天堂8中文在线网| 99热全是精品| 男女无遮挡免费网站观看| 一级毛片黄色毛片免费观看视频| 欧美日韩视频精品一区| 国产人伦9x9x在线观看 | 中文精品一卡2卡3卡4更新| 精品卡一卡二卡四卡免费| 美女视频免费永久观看网站| 亚洲国产精品999| 日产精品乱码卡一卡2卡三| 国产亚洲午夜精品一区二区久久| 好男人视频免费观看在线| 飞空精品影院首页| 18禁国产床啪视频网站| 亚洲一区二区三区欧美精品| 亚洲精品国产一区二区精华液| 亚洲四区av| 纯流量卡能插随身wifi吗| 老汉色av国产亚洲站长工具| 91aial.com中文字幕在线观看| 美女xxoo啪啪120秒动态图| 午夜老司机福利剧场| 人妻系列 视频| 亚洲,欧美精品.| 91国产中文字幕| 国产精品女同一区二区软件| 国产日韩欧美视频二区| 午夜福利,免费看| 母亲3免费完整高清在线观看 | 亚洲综合精品二区| 免费黄网站久久成人精品| 国产一区二区激情短视频 | 亚洲成国产人片在线观看| 色播在线永久视频| 亚洲精品在线美女| 国产精品国产av在线观看| 精品人妻偷拍中文字幕| 国产精品欧美亚洲77777| 国产精品免费视频内射| 80岁老熟妇乱子伦牲交| 一级,二级,三级黄色视频| 男女国产视频网站| 久久久久国产精品人妻一区二区| 久久精品熟女亚洲av麻豆精品| 中文天堂在线官网| 亚洲欧洲日产国产| 国产片特级美女逼逼视频| 一区福利在线观看| 人成视频在线观看免费观看| 一级片'在线观看视频| 美女国产高潮福利片在线看| 久久国产精品男人的天堂亚洲| 男女免费视频国产| 国产亚洲午夜精品一区二区久久| 久久久久国产精品人妻一区二区| 国产精品国产av在线观看| 这个男人来自地球电影免费观看 | 亚洲一级一片aⅴ在线观看| 春色校园在线视频观看| 欧美av亚洲av综合av国产av | 免费观看在线日韩| 久久久久视频综合| 老司机影院成人| 精品一区二区三卡| 满18在线观看网站| 国产男人的电影天堂91| 不卡av一区二区三区| 男人添女人高潮全过程视频| 精品国产乱码久久久久久男人| 成人国产av品久久久| 久热久热在线精品观看| 国产精品二区激情视频| 午夜av观看不卡| 观看美女的网站| 美女视频免费永久观看网站| 伦理电影大哥的女人| 亚洲美女视频黄频| 日韩免费高清中文字幕av| 免费黄网站久久成人精品| 成人亚洲欧美一区二区av| 亚洲成国产人片在线观看| a 毛片基地| 午夜福利一区二区在线看| 免费人妻精品一区二区三区视频| 久久 成人 亚洲| 久久精品国产鲁丝片午夜精品| av网站免费在线观看视频| 欧美另类一区| 妹子高潮喷水视频| 国产成人一区二区在线| 免费高清在线观看视频在线观看| 色视频在线一区二区三区| 国产欧美日韩一区二区三区在线| 美女高潮到喷水免费观看| 久久久精品国产亚洲av高清涩受| 久久精品国产综合久久久| 丁香六月天网| 制服丝袜香蕉在线| 国产男女内射视频| 777久久人妻少妇嫩草av网站| 国产精品国产av在线观看| 国产 一区精品| 在线观看免费高清a一片| 涩涩av久久男人的天堂| 高清黄色对白视频在线免费看| 黑人猛操日本美女一级片| 最近2019中文字幕mv第一页| 精品人妻在线不人妻| 亚洲av中文av极速乱| 综合色丁香网| 晚上一个人看的免费电影| 日韩,欧美,国产一区二区三区| 亚洲av.av天堂| 中文字幕精品免费在线观看视频| 国产av一区二区精品久久| av免费观看日本| 黄色毛片三级朝国网站| 涩涩av久久男人的天堂| 男女免费视频国产| 美女xxoo啪啪120秒动态图| 九九爱精品视频在线观看| 久久精品国产亚洲av高清一级| 国产精品欧美亚洲77777| 飞空精品影院首页| 日本-黄色视频高清免费观看| 激情五月婷婷亚洲| 欧美日韩亚洲高清精品| 久久人妻熟女aⅴ| 中文字幕最新亚洲高清| 亚洲美女搞黄在线观看| 日本-黄色视频高清免费观看| 国产片内射在线| 自线自在国产av| 成人毛片60女人毛片免费| 天美传媒精品一区二区| 99久久人妻综合| 亚洲人成电影观看| 精品少妇内射三级| 秋霞伦理黄片| 91国产中文字幕| 夜夜骑夜夜射夜夜干| 日韩欧美一区视频在线观看| 亚洲熟女精品中文字幕| 久久国内精品自在自线图片| 国产精品不卡视频一区二区| 日本vs欧美在线观看视频| 一级a爱视频在线免费观看| 大香蕉久久网| 国产男女内射视频| 最近的中文字幕免费完整| 亚洲精品国产av蜜桃| 永久网站在线| 久久影院123| av在线app专区| 18在线观看网站| 国产精品久久久久久av不卡| 日韩视频在线欧美| 亚洲熟女精品中文字幕| 不卡av一区二区三区| 日韩,欧美,国产一区二区三区| 可以免费在线观看a视频的电影网站 | 欧美xxⅹ黑人| 久久久久久久久免费视频了| 国产一区有黄有色的免费视频| 观看av在线不卡| 夜夜骑夜夜射夜夜干| 国产精品二区激情视频| 又粗又硬又长又爽又黄的视频| 免费黄网站久久成人精品| 一级片免费观看大全| 黄色毛片三级朝国网站| 精品人妻在线不人妻| 亚洲美女视频黄频| 国产乱来视频区| 日本-黄色视频高清免费观看| 黑人欧美特级aaaaaa片| av在线app专区| 亚洲精品,欧美精品| 一本久久精品| 国产伦理片在线播放av一区| 一级毛片 在线播放| 韩国av在线不卡| 国产在线视频一区二区| 男女边吃奶边做爰视频| 久久精品国产a三级三级三级| 91午夜精品亚洲一区二区三区| 一本久久精品| www.av在线官网国产| 麻豆av在线久日| 亚洲av福利一区| 久久久久久人妻| freevideosex欧美| 亚洲国产最新在线播放| 国产毛片在线视频| 成年女人毛片免费观看观看9 | 国产精品免费大片| 国产无遮挡羞羞视频在线观看| 大香蕉久久网| 中文字幕色久视频| 久久久久久人人人人人| 电影成人av| 夜夜骑夜夜射夜夜干| 国产一区二区三区综合在线观看| 97在线视频观看| 亚洲国产毛片av蜜桃av| 少妇被粗大猛烈的视频| 国产精品国产三级国产专区5o| 精品国产露脸久久av麻豆| xxx大片免费视频| 国产av国产精品国产| 青青草视频在线视频观看| 久久久久久久精品精品| 日韩欧美一区视频在线观看| 亚洲国产av新网站| 久久久精品区二区三区| 欧美精品一区二区大全| 91精品国产国语对白视频| 国产不卡av网站在线观看| 自拍欧美九色日韩亚洲蝌蚪91| 九九爱精品视频在线观看| 制服诱惑二区| 欧美精品亚洲一区二区| 狠狠婷婷综合久久久久久88av| 亚洲国产欧美网| 日韩,欧美,国产一区二区三区| 伦理电影免费视频| 久久国产精品男人的天堂亚洲| 亚洲国产av新网站| 老汉色∧v一级毛片| 18在线观看网站| a级毛片黄视频| 欧美xxⅹ黑人| 最近手机中文字幕大全| 欧美日本中文国产一区发布| 久久久久人妻精品一区果冻| 成年动漫av网址| 少妇的丰满在线观看| 精品人妻一区二区三区麻豆| 久久精品国产自在天天线| 国产精品一二三区在线看| 伊人亚洲综合成人网| 2021少妇久久久久久久久久久| 国产在线免费精品| 我的亚洲天堂| 亚洲精品一二三| 亚洲欧洲精品一区二区精品久久久 | 免费高清在线观看视频在线观看| 丝袜美足系列| 黄色配什么色好看| 天美传媒精品一区二区| 欧美老熟妇乱子伦牲交| 国产男女内射视频| 国产日韩欧美在线精品| 女人精品久久久久毛片| 十八禁高潮呻吟视频| 国产国语露脸激情在线看| 一级黄片播放器| 最新的欧美精品一区二区| 老司机影院成人| 欧美日韩一区二区视频在线观看视频在线| 国产成人a∨麻豆精品| 久久鲁丝午夜福利片| 国产高清国产精品国产三级| 国产淫语在线视频| 中文精品一卡2卡3卡4更新| 午夜福利视频在线观看免费| 国产精品秋霞免费鲁丝片| 老熟女久久久| 99热国产这里只有精品6| 999精品在线视频| 大香蕉久久成人网| 久久久久国产精品人妻一区二区| 你懂的网址亚洲精品在线观看| 天天躁日日躁夜夜躁夜夜| 99国产综合亚洲精品| 一本大道久久a久久精品| 人体艺术视频欧美日本| 亚洲婷婷狠狠爱综合网| 久久久国产精品麻豆| 国产1区2区3区精品| www.av在线官网国产| 亚洲精品av麻豆狂野| 国产精品.久久久| av卡一久久| 国产免费现黄频在线看| 亚洲精品av麻豆狂野| 女性生殖器流出的白浆| 久久久久久久精品精品| 在线天堂中文资源库| 久久 成人 亚洲| 亚洲av电影在线进入| 好男人视频免费观看在线| 岛国毛片在线播放| 亚洲情色 制服丝袜| 80岁老熟妇乱子伦牲交| 国产精品欧美亚洲77777| 一区二区日韩欧美中文字幕| 欧美国产精品一级二级三级| 欧美变态另类bdsm刘玥| 一级毛片电影观看| 免费看不卡的av| 成人影院久久| 午夜福利,免费看| 中国国产av一级| 国产一区二区三区综合在线观看| 最近中文字幕高清免费大全6| 高清视频免费观看一区二区| 最近中文字幕高清免费大全6| 伦理电影大哥的女人| 免费观看无遮挡的男女| 欧美最新免费一区二区三区| 欧美日韩国产mv在线观看视频| 美女脱内裤让男人舔精品视频| 夜夜骑夜夜射夜夜干| 最近中文字幕2019免费版| 最近手机中文字幕大全| 日本-黄色视频高清免费观看| 9热在线视频观看99| 久久99一区二区三区| a级毛片黄视频| 国产极品天堂在线| 在线观看www视频免费| 如日韩欧美国产精品一区二区三区| 性色av一级| 哪个播放器可以免费观看大片| 三上悠亚av全集在线观看| 亚洲欧美成人综合另类久久久| 亚洲伊人色综图| xxx大片免费视频| 两个人免费观看高清视频| 亚洲精品国产色婷婷电影| 深夜精品福利| 久久 成人 亚洲| 欧美日韩一区二区视频在线观看视频在线| 免费日韩欧美在线观看| 国产精品 国内视频| 韩国高清视频一区二区三区| 日韩中字成人| 韩国精品一区二区三区| 亚洲av男天堂| 日韩精品免费视频一区二区三区| 国产精品一区二区在线不卡| 久久久久精品人妻al黑| 久久午夜福利片| 寂寞人妻少妇视频99o| 九色亚洲精品在线播放| 中文欧美无线码|