淺談wince驅動調試方法

來源:互聯網
上載者:User
淺談wince驅動調試方法(作者:wogoyixikexie@gliet)

     以前,我調試驅動都是打包,下載,很鬱悶,一個小小的DLL都要這麼費神,對微軟極為不滿,現在發現驅動調試有一些訣竅,特來和大家分享,如果你有更好的方法,就來和大家分享吧。

     之所以說“淺談”,是因為我自己也搞得模模糊糊的,問過很多人,大家一致認為有三種調試方法:

一、使用應用程式動態載入驅動——優點是不用下載打包NK,可以在正常情況下看到驅動的運行情況;缺點是只能調試流驅動。在這方面有個專家做的很好,發布了驅動調試助手http://www.cnblogs.com/we-hjb/archive/2009/02/14/1250838.html#1451120——在這裡就不多說了,看原版才是好的。

 

二、KITL。這個東西我用過,覺得調試那些不能啟動的嚴重BUG很有用。下面適合一個朋友的談話,很清晰了。

三、神秘武器......什麼都不用!
 
加密助手 說:
--- 系統提示: 以下會話未被加密 ---
CSDN-Ricky_hu北京 說:
做過
CSDN-Ricky_hu北京 說:
這就是動態調試驅動,經常這樣做
wogoyixikexie@gliet 說:
這個方法我很想學,你能不能教教我
wogoyixikexie@gliet 說:
整天燒寫,太鬱悶了
CSDN-Ricky_hu北京 說:
談不上教, 很容易的
wogoyixikexie@gliet 說:
我都不知道怎麼操作
CSDN-Ricky_hu北京 說:
你燒寫一次,然後用pb通過kitl下載,在這個target->release dir module->add module裡面添加你要調試的驅動就ok了
CSDN-Ricky_hu北京 說:
這個就是kitl的主要功能
wogoyixikexie@gliet 說:
這樣載入上去也沒有什麼意思啊。因為KITL只能往前載入,不能往後載入的
CSDN-Ricky_hu北京 說:
你說的往後載入是什麼意思?
wogoyixikexie@gliet 說:
就是比如我載入過一個驅動以後,不能再回來設定斷點再次執行了
wogoyixikexie@gliet 說:
同一個驅動不能執行兩次的吧
CSDN-Ricky_hu北京 說:
再回來設定斷點就重新串連kitl啊
wogoyixikexie@gliet 說:
KITL,我的還有點問題,我只會使用一點點
CSDN-Ricky_hu北京 說:
在eboot裡面配置好了就ok了
wogoyixikexie@gliet 說:
你的意思是說,在這個target->release dir module->add module裡面添加你要調試的驅動,然後要重新串連KITL?
CSDN-Ricky_hu北京 說:
你要調試那個驅動就把它添加到target->release dir module->add module這裡面,然後串連kitl調試,發現問題,修改後直接編譯這個驅動,然後再重新串連kitl繼續調試,再發現問題,再修改,再連kitl調試
wogoyixikexie@gliet 說:
哦,這也是個方法
wogoyixikexie@gliet 說:
這個方法很強大,可以調試本機驅動
wogoyixikexie@gliet 說:
使用應用程式只能調試流驅動
CSDN-Ricky_hu北京 說:
這是pb中kitl的基本調試方法,功能很強大,能列印很多調試資訊
CSDN-Ricky_hu北京 說:
應用程式調試的只是介面,驅動內部的還是不能夠調試
wogoyixikexie@gliet 說:
不過缺點是註冊表修改之後就要重新下載核心才行
CSDN-Ricky_hu北京 說:
嗯,對,這個對於註冊表以及kernel層級的修改要重新下載nk
wogoyixikexie@gliet 說:
還有一般要編譯成debug版本的驅動才行,整個NK編譯成debug版本會非常大。哈哈,原以為是不用KITL就可以載入的。厲害
CSDN-Ricky_hu北京 說:
不一定非得編譯成debug版本的驅動啊,release版本的也可以通過kitl調試,而且調試資訊也很豐富的
wogoyixikexie@gliet 說:
你用什麼晶片?
wogoyixikexie@gliet 說:
PXA310?
CSDN-Ricky_hu北京 說:
你可以在release驅動裡面加斷點,一步步走,這樣發現問題很快
CSDN-Ricky_hu北京 說:
pxa270,不過馬上要用310了
wogoyixikexie@gliet 說:
有些驅動是有介面的,介面需要應用來訪問
wogoyixikexie@gliet 說:
如果KITL+應用程式來調試,這樣列印資訊也會顯示在PB裡面吧
CSDN-Ricky_hu北京 說:
驅動一般都有介面,就看這個介面是留給誰來訪問了
CSDN-Ricky_hu北京 說:
wogoyixikexie@gliet 說 (9:43):
如果KITL+應用程式來調試,這樣列印資訊也會顯示在PB裡面吧

對,會顯示
wogoyixikexie@gliet 說:
不過這樣已經很不錯了。比如COM_Read這些,KITL應該不能在裡面設定斷點的吧
CSDN-Ricky_hu北京 說:
這個COM_Read是驅動提供的介面嗎?如果是,也能設定斷點的
wogoyixikexie@gliet 說:

wogoyixikexie@gliet 說:
要應用程式開啟的
wogoyixikexie@gliet 說:
這個也行?
CSDN-Ricky_hu北京 說:
但是你要把斷點設定在驅動裡面,而不是應用程式裡面
wogoyixikexie@gliet 說:
那太厲害了,那怎麼控制它進去?
CSDN-Ricky_hu北京 說:
你用kitl就應該沒問題
CSDN-Ricky_hu北京 說:
在XXX_Read
CSDN-Ricky_hu北京 說:
裡面設定斷點
wogoyixikexie@gliet 說:
是不是有命令才行進去,還是直接弄個斷點就可以了?
CSDN-Ricky_hu北京 說:
你確定應用要調用xxx_read(),然後在它的驅動裡面設定斷點就可以斷住了吧
wogoyixikexie@gliet 說:
這是很好的方法
CSDN-Ricky_hu北京 說:
具體的你可以試試,但是用kitl調試應用的話效果不太理想
CSDN-Ricky_hu北京 說:
你可以用vs調試應用,看問題出現在哪裡,然後用pb繼續跟蹤驅動
wogoyixikexie@gliet 說:
我上次弄過一下子,發現液晶屏不會亮了,但是系統已經起來
CSDN-Ricky_hu北京 說:
呵呵
wogoyixikexie@gliet 說:
這個三星BSP做的不是很好。
CSDN-Ricky_hu北京 說:
我沒用過三星的bsp和晶片
CSDN-Ricky_hu北京 說:
三星自己的手機啊什麼的產品都不用他們自己的晶片和bsp,我們為什麼要用呢,呵呵。。。
wogoyixikexie@gliet 說:
的確是
wogoyixikexie@gliet 說:
你是通過網卡來弄KITL的吧?
CSDN-Ricky_hu北京 說:
usb
CSDN-Ricky_hu北京 說:
其實也是類比成網卡
wogoyixikexie@gliet 說:
很多人都不會用KITL,你那裡有什麼文檔嗎?有空寫個完整的部落格幫幫大家,哈哈
wogoyixikexie@gliet 說:
上次我也用USB,這樣就會是同步軟體不能串連了。不能弄應用程式進來聯調
CSDN-Ricky_hu北京 說:
我也是從優龍的eboot裡面移植過來的
CSDN-Ricky_hu北京 說:
還有pb下面mainstone的bsp裡面也有,你也可以移植一下
wogoyixikexie@gliet 說:
哦,確實是,PB5.0下,那個正是PXA270的BSP。
CSDN-Ricky_hu北京 說:
有空我可以整理一下,但是目前很忙啊,產品馬上要上市了,天天加班
CSDN-Ricky_hu北京 說:
是啊,我們就是在這個bsp上移植的,很好用,很快
wogoyixikexie@gliet 說:
我想弄個這種板子來搞搞。嘿嘿。
wogoyixikexie@gliet 說:
不打擾你了。謝謝你
CSDN-Ricky_hu北京 說:
客氣,呵呵。。

 

準備結貼。

總結:
一、經過這次教訓,MDD部分的代碼最好不要修改,因為它極有可能和別的驅動公用,如果改動了,甚至讓資訊列印也會產生意想不到的後果,實在要修改的,就移植到BSP下,這樣我們就可以任意妄為了。哈哈
二、意外收穫——找到了最佳調試驅動方法。1、KITL(適合調試大BUG,比如異常,不能啟動系統等情況) 2、驅動調試助手(適合調試流驅動,並且驅動中無註冊表操作的情況,有註冊表操作的會導致異常,如果有時間,可以修改一下這個BUG) 3、在platform.bib,platform.reg檔案中準備好所調試驅動相關資訊。再次調試修改該驅動的時候,只需要把該驅動的DLL代替wince windows目錄下的老DLL即可。當然少不了應用程式配合調試其他功能(最好加入註冊表操作)——這是我目前最支援的方法,因為最簡單,最可靠!

轉載請標明:作者wogoyixikexie@gliet.桂林電子科技大學一系科協,原文地址:http://www.cnblogs.com/wogoyixikexie/(或者我在CSDN的部落格:http://blog.csdn.net/gooogleman)——如有錯誤,希望能夠留言指出;如果你有更加好的方法,也請在部落格後面留言,我會感激你的批評和分享。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.