翻譯版: 如何除錯Windows CE 的Suspend/Resume 問題?

在 Microsoft HopperRx team 的 Blog 上有一篇文章提到了在Windows CE下去 Debugging Suspend/Resume issues.

這裡是我的翻譯版本與原文轉貼(這也算是How to read a book 裡面提到的一個閱讀方法,將閱讀的內容轉成自己的語言表達,可以確定自己是否了解作者的意思)


在部落格 "雪白的熱情蘋果"一文中描述了如何去測試許多常見的待機/喚醒系統停擺問題。而其他的待機/喚醒問題可以透過"被動式 KITL"連結除錯。當裝置待機時一個標準的KITL連結(主動式)會產生斷線。而被動式KITL不會發生這個問題

在裝置上啟動"被動式KITL"的方法,在產生有KITL的系統影像檔時,需要改寫OEMInit()這個函式呼叫的 KitlInit(FALSE),FALSE會通知核心去初始化KITL結構,但不要初始化硬體。當硬體沒有初始化,KITL在待機狀態時將不會關閉這個硬體,更多實做主動/被動KITL的資訊可以查閱CE 6.0文件。

一個被動的KITL被使用時,當問題發生時需要一個觸發KITL與中斷到除錯器的觸發者。最好的方法是去改寫鍵盤驅動程式,當按下一個特定鍵時,去呼叫DebugBreak()函式。當裝置設定與準備好,一個測試員可以去使裝置反覆的待機/喚醒直到系統當機,然後按下特定鍵去連接裝置到Platform Builder。從這裡開始可以使用Platform Builder的除錯工具去除錯這當機問題,就像其他的系統當機問題一樣。


Debugging Suspend/Resume Issues

The blog "Snow White’s Poison Apple" describes how to test the most common suspend/resume hang. Other suspend/resume issues can be debugged over a "Passive KITL" connection. A standard KITL connection (a.k.a. "Active KITL") gets dropped when a device suspends, however, Passive KITL doesn’t suffer from this problem.

To enable passive KITL on a device, build a KITL image but change OEMInit() so it calls KitlInit(FALSE). The FALSE parameter will tell the kernel to initialize the KITL structures without initializing the hardware. Since the hardware isn’t initialized, KITL won’t be affected when the suspend path powers off the hardware. Check out the CE6.0 documentation for more information about implementing KITL and enabling active or passive KITL.

Once passive KITL is enabled, a trigger is needed to activate KITL and break into the debugger when an issue occurs. The best way to do this is to modify the keyboard driver so that it calls DebugBreak() when a specific key is pressed. With the device configured and the trigger in place, a tester can suspend/resume the device repeatedly until the device hangs, then press the specific button and connect to the device in Platform Builder. From this point on, the hang can be debugged using Platform Builder’s debugging tool’s just like any other system hang.

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: