KITL要工作必須要具備兩個條件,一是在開發工作站上要運行PB(Platform Builder),另外在Windows CE的OAL層要實現支持KITL的代碼。如下圖:
KITL有兩種模式:主動和被動模式。主動模式是指系統在啟動的過程就要求和開發工作站建立KITL連線,而且這個連線必須一直保持,否則系統會不正常,它主要適用於開發工程師作調試;被動模式不要求在啟動階段就建立KITL連線,只有當系統出現異常,而且沒有相應的處理器處理這個異常的時候,才會請求建立一個KITL連線,這種模式主要適用於測試人員或者是系統已經比較穩定的情況,這樣可以方便開發人員去跟蹤問題。
目前KITL支持的傳輸方式有以下幾種:
串口: 優點是容易實現,但速度太慢。
網卡: 優點是快,容易實現。但一般的嵌入式設備都不支持網卡。
基於USB仿真的串口: 優點是快,而且現在的嵌入式設備都支持USB。但是PB不支持通過它下載。
基於USB仿真的網卡: 因為在開發工作站端看到的是一個網卡,所以相比USB仿真的串口,PB支持通過它下載image。
基於KITL可以提供很多調試服務,除了微軟已經提供的,開發商也可以自己開發:
代碼調試: 可以調試kernel和普通的application。
遠程工具: PB自帶的一些遠程工具會通過KITL和設備通信,比如編輯註冊表,測試系統性能,spy視窗訊息。
Release檔案系統: 如果Windows CE要載入某個檔案,但image里又沒有。系統會通過KITL從開發工作站的release目錄下載入該檔案。這樣就可以提高開發效率。比如開發人員在調試一個driver,他就可以不要將該driver放到os image里,也就不要每次修改driver後都下載整個os image,因為系統會自動從release目錄下載入最新的該driver。
KITL的實現,可以提高開發效率,有利於開發出更穩定的產品。所以開發商在產品的設計初期就要考慮怎樣支持KITL,要有相應的通信硬體,要開發相應的代碼。