美女网站一区二区_在线观看日韩毛片_成人在线视频首页_欧美精品一区二区三区久久久_国产精品亚洲一区二区三区在线_日本免费新一区视频_日本美女一区二区三区_精品亚洲成a人_久久不见久久见免费视频1_91首页免费视频_欧美一区二区在线看_91精品91久久久中77777_天堂蜜桃一区二区三区_av在线一区二区_欧美不卡一区二区_欧美影视一区二区三区

產品分類

當前位置: 首頁 > 工業電氣產品 > 電氣附件 > 冷壓端子

類型分類:
科普知識
數據分類:
冷壓端子

Windows Embedded Compact 實時調度介紹

發布日期:2022-04-27 點擊率:170 品牌:EMB

  • 關鍵詞: Windows Embedded Compact
  • 摘要:本文介紹了Windows Embedded Compact 實時調度的定義、軟硬件平臺搭建及程序運行設置等,可供學習參考。

  實時調度機制(Real-Time Scheduler)是Windows Embedded Compact區別于其他所有Windows系統的最顯著特性,同時也是開發嵌入式系統時需要著重考慮的部分。在工程領域對“實時”的理解,我非常欣賞下面的定義:“一個實時系統必須要滿足明確的(受限的)響應時間約束或風險的嚴重后果,包括失效狀態”- 出自于Phillip A. Laplante Real-Time System Design and Analysis所以,一個實時系統中執行一個代碼必須在規定的時間約束內有明確的結果,否則就可能會導致系統失效,實時并不一定意味著快速處理能力。Windows Embedded Compact正符合上述對于實時系統的定義,因此為了進一步理解,我們首先來了解它的任務調度機制,WinCE的任務調度內核每隔1ms查詢一次現有任務并依據下面兩個原則來決定處理哪個任務:

a). 具有更高優先級的任務先被執行

b). 同樣優先級的任務按100ms時間間隔(或Task Quantum定義的時間間隔)循環輪流執行

對于第一條規則,WinCE提供256個優先級等級(0-255),數字越小優先級越高,因此0級為最高優先級,關于優先級的應用本文不做重點描述,請參考下面文章:

Real-TimePriority System Levels (Windows Embedded CE 6.0)

對于第二條規則,當多個待處理任務擁有同樣的優先級,將按照100ms時間間隔(可以根據Thread Quantum自定義)循環輪流執行。例如有N個同樣優先級的任務,當第一個運行了上述定義時間片(WinCE稱其為Quantum,如100ms),系統內核就會將其中斷然后執行第二個任務,依此類推,直到N個任務都執行過一個Quantum時間后再重新回到第一個任務執行,如此循環。任一個線程最多只能運行一個Quantum的時間,除非另一個更高優先級的任務需要占用CPU,則按照第一條規則,這個線程會被更高優先級任務占用。


下面我們通過兩個例子來驗證上述兩個規則,硬件平臺使用ToradexColibri VF61NXP/Freescale Vybrid Cortex-A5 )計算機模塊搭配Iris 載板,軟件使用Toradex提供的對應此平臺的工業級的WinCE6OSGPIO

a). 軟硬件平臺搭建請參考開發指南,如下圖所示

b). 驗證原理為在系統中啟動兩個任務,第一個任務驅動硬件某個GPIO輸出為低電平,而另一個則將同一個GPIO輸出為高電平;再將這兩個任務的優先級分別設置為相同和不同時候,通過觀測GPIO連接的示波器輸出來判定上述的兩個調度規則。關鍵代碼如下:創建兩個線程入口函數ThreadONThreadOFF,分別用來將選定的GPIO輸出為高電平和低電平,而從函數內部代碼可見會持續輸出高電平或者低電平,因此我們通過示波器觀察GPIO管腳的輸出即可得出目前是哪個函數在運行。

--------------------------------------------------------------------------------------------------------------

#include

#include"gpio.h"

// ===define constant pins / gpios ===

// SODIMMpin 101

uIo io1 =COLIBRI_PIN(101);

HANDLE hGpio;

HANDLE hThreadON,hThreadOFF;

//defineThreadON

DWORD WINAPI ThreadON( LPVOID lpParam ){

    //Set ThreadPriority

    CeSetThreadPriority(GetCurrentThread(), 100);

    Sleep(5); //Allowthe orther Thread to configure it's PRIO

    //FNFINITELOCKING LOOP

    while(1){

        //Set GPIOlogic high

        Gpio_SetLevel(hGpio, io1, ioHigh);

    }

    return 0;

}

//defineThreadOFF

DWORD WINAPI ThreadOFF( LPVOID lpParam ){

    //Set ThreadPriority

    CeSetThreadPriority(GetCurrentThread(),100);

    //FNFINITELOCKING LOOP

    while(1){

        //Set GPIOlogic low

        Gpio_SetLevel(hGpio, io1, ioLow);

    }

    return 0;

}

//=============================================================================

//Application Entry Point

//

// Thesimple error handling using ASSERT statements is only effective when

// theapplication is run as a debug version.

//=============================================================================

int wmain(int argc, _TCHAR* argv[])  

{

   BOOL success;

   // === InitializeGPIO library. ===

   // We don't useregistry-based  configuration, thus wecan

   // pass NULL goGpio_Init()

   hGpio = Gpio_Init(NULL);  

   ASSERT(hGpio != 0);

   success = Gpio_Open(hGpio);

   ASSERT (success);

   // Configure thepin to act as GPIO (as opposed to an Alternate function)

   // Set it toOutput,  High

   Gpio_ConfigureAsGpio(hGpio, io1);

   Gpio_SetDir         (hGpio, io1, ioOutput);

   Gpio_SetLevel       (hGpio, io1, ioHigh);

   CeSetThreadPriority(GetCurrentThread(),99);

    //Create twoconcorrent Threads, one set GPIO to High and other to Low

    hThreadON = CreateThread(NULL, 0, ThreadON,NULL, 0, NULL);

   hThreadOFF = CreateThread(0, 0, ThreadOFF,NULL, 0, NULL);

   

//Time to finish the Program

Sleep(3000);

   return(TRUE);

}

--------------------------------------------------------------------------------------------------------------

c). 首先我們來測試第二條規則,將兩個任務的優先級設置為相同值(如上面代碼為100),運行程序后示波器圖形如下,可以看到每隔100ms GPIO輸出循環交替變化,完全符合我們第二條規則。

d). 然后我們再來測試第一條規則,如下修改一個任務(ThreadON)的代碼,將其優先級提高到99,另外在循環中增加一個5ms的暫停時間。

--------------------------------------------------------------------------------------------------------------

DWORD WINAPI ThreadON( LPVOID lpParam ){

    //Set ThreadPriority

    CeSetThreadPriority(GetCurrentThread(), 99);

    Sleep(5); //Allowthe orther Thread to configure it's PRIO

    //FNFINITELOCKING LOOP

    while(1){

        //Set GPIOlogic high

        Gpio_SetLevel(hGpio, io1, ioHigh);

              Sleep(5);

    }

    return 0;

}

--------------------------------------------------------------------------------------------------------------

e). 運行修改后的程序,示波器輸出如下結果,每隔7ms左右有一個拉高的脈沖,表示每次當高優先級的任務(ThreadON)從5ms 暫停時間恢復后,都會中斷低優先級任務的執行,這樣完全符合第一條規則的描述。

  當然,以上所有測試都是基于單核心系統,從Windows Embedded Compact 7 開始,WinCE內核提供了對多核心處理器的支持,同時也有一個新的屬性“affinity”來定義哪一個核心來執行哪一個線程,所以如果在多核系統和WEC7上面運行上述例子,同時并未限定線程在同一個核心上面執行,則結果會不同因為兩個線程會同時在不同核心上面運行。當然,其實正常應用情況下我們是不建議設置“affinity”參數的,因為這樣就無法使得內核調度來自動安排線程在最先空閑的核心上面運行,達不到降低延遲提高系統性能的要求了。

  實時系統目前在包括工業自動化,機器人和醫療領域等嵌入式設備上面有廣泛的需求,因此了解WinCE的實時調度工作機制以及如何使用線程可以讓我們的應用程序實時穩定的執行,讓我們更高效可靠的利用WinCE搭建我們的實時系統!

下一篇: PLC、DCS、FCS三大控

上一篇: 索爾維全系列Solef?PV

推薦產品

更多
美女网站一区二区_在线观看日韩毛片_成人在线视频首页_欧美精品一区二区三区久久久_国产精品亚洲一区二区三区在线_日本免费新一区视频_日本美女一区二区三区_精品亚洲成a人_久久不见久久见免费视频1_91首页免费视频_欧美一区二区在线看_91精品91久久久中77777_天堂蜜桃一区二区三区_av在线一区二区_欧美不卡一区二区_欧美影视一区二区三区


        日日嗨av一区二区三区四区| 国产日韩精品一区二区浪潮av| 精品免费日产一区一区三区免费| 91捆绑美女网站| 波多野结衣一区二区三区| 国产.精品.日韩.另类.中文.在线.播放| 国产精品伊人色| 成人黄色国产精品网站大全在线免费观看| 国产jizzjizz一区二区| 91蜜桃网址入口| 久久久久久一区| 三区精品视频观看| 欧美日韩一区小说| 精品国精品国产| 国产精品麻豆久久久| 亚洲精品久久久蜜桃| 免费观看在线色综合| 国产成人精品免费| 精品毛片乱码1区2区3区| 国产精品热久久久久夜色精品三区| 日韩一区有码在线| 麻豆国产欧美日韩综合精品二区| 国产成人精品亚洲777人妖| 超碰在线97av| 一本到一区二区三区| 日韩欧美一二三区| 亚洲人123区| 久久99精品久久久久| 成人欧美一区二区三区黑人免费| 青娱乐国产91| 日韩三级精品电影久久久 | 国产精品自在在线| 国产精品久久久久久久久婷婷 | 色爱区成人综合网| 精品视频一区二区三区免费| 国产欧美日韩亚州综合| 性做久久久久久免费观看| 国产成人av网站| 久久一区二区三区欧美亚洲| 欧美片在线播放| 国产精品视频一二三区| 久久精品国产成人一区二区三区 | 日本一区二区三区视频免费看| 欧美日韩中文精品| 日韩一区欧美一区| 国内久久精品视频| 久久国产精品 国产精品| 欧美日韩一区二区不卡| 一区二区三区色| 99视频精品在线| 亚洲一区二区三区精品视频| 精品欧美黑人一区二区三区| 亚洲一区二区三区激情| 91精品天堂| 欧美精品v国产精品v日韩精品| 亚洲精品国产视频| 91美女在线视频| 欧美日韩免费观看一区二区三区| 亚洲色图在线视频| 丁香天五香天堂综合| 在线视频欧美一区| 亚洲日本丝袜连裤袜办公室| 成人永久aaa| 日本道精品一区二区三区 | 中文字幕一区免费在线观看| 国产资源精品在线观看| 天天综合色天天综合色hd| 中文字幕巨乱亚洲| www.欧美日韩| 欧美一区二区三区在线观看视频| 午夜精品一区二区三区电影天堂| 国模精品娜娜一二三区| 国产亚洲成年网址在线观看| 国产麻豆视频精品| 欧美主播一区二区三区| 日韩影院精彩在线| 亚洲视频在线观看日本a| 亚洲人成精品久久久久| 国产精品一区二区三区免费| 久久先锋影音av鲁色资源网| 黄一区二区三区| 在线观看91精品国产入口| 天天综合网 天天综合色| 亚洲高清视频一区二区| 亚洲综合激情另类小说区| 国产一区自拍视频| 国产午夜精品久久久久久久| 9久草视频在线视频精品| 日韩一二三区视频| 国产91对白在线观看九色| 8x福利精品第一导航| 国模大尺度一区二区三区| 欧美日韩激情在线| 精品一区二区成人精品| 欧美日韩一区二区三区四区五区 | 九色综合婷婷综合| 国产精品无人区| 懂色av一区二区三区在线播放| 久久综合久久综合久久综合| 成人动漫一区二区| 国产亚洲综合性久久久影院| 成人免费视频网站入口| 中国色在线观看另类| 国产精品伊人日日| 亚洲人成小说网站色在线| 美乳视频一区二区| 亚洲一级二级三级| 在线观看成人一级片| 久色婷婷小香蕉久久| 91精品国产综合久久香蕉的特点 | 日韩精品一区二区在线观看| 岛国精品在线播放| 久久精品亚洲精品国产欧美kt∨ | 亚洲自拍偷拍二区| 另类的小说在线视频另类成人小视频在线 | 亚洲欧美精品在线观看| 婷婷亚洲久悠悠色悠在线播放 | 中文字幕一区二区三区乱码| 日韩精品91亚洲二区在线观看| 欧美午夜电影网| 国产91在线观看| 中文字幕欧美国产| 日韩精品极品视频在线观看免费| 日韩国产精品久久久| 欧美电影一区二区三区| 91丨九色丨蝌蚪富婆spa| 中文字幕在线一区免费| 一本一本大道香蕉久在线精品 | av成人午夜| 亚洲一区二区欧美日韩| 欧美午夜精品免费| 91蜜桃免费观看视频| 一区二区日韩电影| 欧美高清视频一二三区| 国产精品一 二 三| 日韩av一级片| 26uuuu精品一区二区| 欧美亚州在线观看| 韩国视频一区二区| 国产精品情趣视频| 在线视频你懂得一区| 91精品国产99久久久久久红楼| 一区二区高清在线| 欧美一区二区三区四区五区| 精品国产免费人成电影在线观...| 日韩电影免费在线看| 久久久久国产一区二区三区四区| 亚洲国产欧洲综合997久久| 成人免费视频app| 亚洲国产精品一区二区尤物区| 91精品国产综合久久精品麻豆| 久久99精品久久久久久水蜜桃| 国内欧美视频一区二区 | 中文字幕一区二区三区在线不卡| 亚洲一区二区三区色| av在线不卡电影| 午夜一区二区三区视频| 欧美精品一区二区在线观看| 日韩欧美在线电影| 99精品视频在线播放观看| 亚洲成av人片一区二区| 久久久噜噜噜久久人人看| 在线观看亚洲精品| 精品在线视频一区二区| 国产电影一区在线| 亚洲h在线观看| 日本一二三四高清不卡| 欧美日韩三级在线| 青青草成人激情在线| 成人av手机在线观看| 日本成人在线视频网站| 国产精品久久久久久户外露出| 5858s免费视频成人| 亚洲欧洲一二三| 九色91在线视频| 91香蕉视频mp4| 国产东北露脸精品视频| 蜜臀99久久精品久久久久久软件 | 日本在线不卡一区| 亚洲日本va在线观看| 精品av综合导航| 欧美日韩一区三区| 伊人婷婷久久| 秋霞久久久久久一区二区| 91麻豆swag| 国产成人精品免费网站| 蜜桃久久久久久久| 夜夜爽夜夜爽精品视频| 中文字幕一区二区三区av| 精品精品国产高清a毛片牛牛 | 久久免费美女视频| 欧美精品少妇一区二区三区| 婷婷久久青草热一区二区| 精品视频免费观看| 成人高清在线观看| 91蜜桃在线观看| av午夜精品一区二区三区| 国产高清精品在线| 国产精品一区在线观看乱码| 日韩不卡一区二区三区|