驅(qū)動調(diào)試助手的下載次數(shù)已經(jīng)過萬,很多網(wǎng)友也提出了一些寶貴建議,非常感謝。這里再做一個更新,V2.9中主要增加了注冊表查找和注冊表項重命名這兩個功能,至此,有關(guān)注冊表操作的所有功能基本都已實現(xiàn)了。雖然不能跟Resco Regedit等大牌比,但功能上并不差多少,而且原生態(tài)的支持WinCE系統(tǒng),包括ARMV4、ARMV4I、MIPSII、SH4。
簡單說明一下新增功能的用法,查找的界面如下。
支持查找項名、鍵名和字符串類型的鍵值。默認查找全部注冊表,也可以在RegTree中選擇查找的起始位置。全字匹配的意思是查找項與查找目標(biāo)完全一致(不區(qū)分大小寫),如果沒選擇該復(fù)選框則允許查找目標(biāo)在查找項中部分匹配。
項名的重命名可通過菜單“重命名項”完成,如下圖所示。
也可以再RegTree中左鍵點擊相應(yīng)的項完成,如下圖所示。
鍵值的重命名與項的重命名一致,不再贅述。
另外,gooogleman在使用驅(qū)動調(diào)試助手動態(tài)加載串口驅(qū)動時出現(xiàn)了一些問題。串口驅(qū)動在啟動時能正常加載,但通過驅(qū)動調(diào)試助手卸載后再加載總是失敗。我查了一下,主要原因是系統(tǒng)啟動時通過BusEnum.dll加載驅(qū)動與驅(qū)動調(diào)試助手的加載過程還是有一些區(qū)別的。驅(qū)動調(diào)試助手只是以簡單的流驅(qū)動的方式加載,而BusEnum.dll以總線設(shè)備的方式加載,并在注冊表中設(shè)置了相應(yīng)的鍵值。串口驅(qū)動中在物理地址的內(nèi)存映射時需要用到相應(yīng)的鍵值,如果鍵值不存在就會導(dǎo)致內(nèi)存映射失敗,以致串口驅(qū)動加載失敗。兩種方式加載驅(qū)動后的注冊表對比如下。
開機啟動時加載成功的Active鍵的截圖。
可以看到,里面設(shè)置了InterfaceType、BusName和BusParent等鍵值。其中InterfaceType就是串口驅(qū)動動態(tài)加載失敗的關(guān)鍵。
動態(tài)加載串口驅(qū)動成功時Active鍵的截圖。
可以看到,這里沒有設(shè)置InterfaceType、BusName和BusParent等鍵值。但是串口驅(qū)動也加載成功了,并且經(jīng)驗證可以正常使用串口。這是為什么呢?其實,并沒有修改串口驅(qū)動,只是修改了CEDDK.dll中的一個函數(shù)HalTranslateBusAddress()。因為這是出錯的根本原因,是這里使用了InterfaceType。我的修改方法是注釋掉SRC\Drivers\Ceddk\Dll\sources中SOURCELIBS變量的第一行“$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\ddk_bus.lib \”,即不使用BSP中的ddk_bus.lib,而使用系統(tǒng)提供的ddk_bus.lib,它里面沒有對InterfaceType做處理,所以加載驅(qū)動時就不會出錯了。
以上是解決串口驅(qū)動不能動態(tài)加載的一種方法,實際上驅(qū)動調(diào)試助手主要是動態(tài)管理流驅(qū)動的,可能還有其他一些驅(qū)動不能通過它正常加載,這時候,我們就不能再偷懶了,只能乖乖的走老路,多花點時間下載NK了。
- PC官方版
- 安卓官方手機版
- IOS官方手機版