?? subject_17812.htm
字號:
<p>
序號:17812 發表者:le 發表日期:2002-10-15 18:35:30
<br>主題:請教:讀寄存器造成死機是什么原因?
<br>內容:各位高手:<BR> 我在驅動中,先做了I/O映射:<BR> dx->pMapBuffer=(PUCHAR)MmMapIoSpace( dx->linerAddress, dx->addrLinerLen, <BR> MmNonCached); <BR> 然后在不同的函數中調用: <BR> PULONG pTestReg=(unsigned long *)((unsigned char *)pMapBuffer+Reg)<BR> READ_REGISTER_ULONG(pTestReg);<BR> 結果造成死機,請問是什么原因?<BR><BR> 多謝!
<br><a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p>
<hr size=1>
<blockquote><p>
回復者:dr0 回復日期:2002-10-15 18:58:00
<br>內容:Reg 是什么 ?
<br>
<a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p></blockquote>
<hr size=1>
<blockquote><p>
回復者:le 回復日期:2002-10-15 19:20:10
<br>內容:<BR>Reg是我的設備寄存器地址,0x66
<br>
<a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p></blockquote>
<hr size=1>
<blockquote><p>
回復者:dr0 回復日期:2002-10-15 19:23:57
<br>內容:dx 呢?
<br>
<a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p></blockquote>
<hr size=1>
<blockquote><p>
回復者:le 回復日期:2002-10-15 19:46:56
<br>內容:謝謝您的關照,我應該把它說清楚些:<BR>dx是我的設備擴展結構,其中有如下變量:<BR>{<BR> ......<BR> //Register map<BR> bool bSetMem;<BR> PHYSICAL_ADDRESS linerAddress;<BR> ULONG addrLinerLen;<BR> PVOID pMapBuffer;//映射基址 <BR> ......<BR>}<BR>在同樣的情形下,我讀該寄存器就不死機。實際的情況是該寄存器可在任意時刻讀寫的。<BR>請問我可能是哪里出了問題?<BR>非常感謝!
<br>
<a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p></blockquote>
<hr size=1>
<blockquote><p>
回復者:^_^ 回復日期:2002-10-16 09:31:06
<br>內容:什么叫同樣的情況下?<BR>理論上如果板卡沒有問題,讀寫都不會司機的。<BR>看你的0x66時不是大了一些?你的板卡確實有這么多I/O寄存器么?<BR>
<br>
<a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p></blockquote>
<hr size=1>
<blockquote><p>
回復者:le 回復日期:2002-10-16 12:38:12
<br>內容:同樣的情況上是說把讀寄存器語句<BR>換成寫寄存器WRITE_REGISTER_ULONG(pTestReg);這樣就可以正常通過。<BR>上次的發言錯了一個地方,應該是在同樣的情形下,我“寫”該寄存器就不死機。<BR>請教各位高手,<BR>可能是什么原因造成的呢?<BR>
<br>
<a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p></blockquote>
<hr size=1>
<blockquote><p>
回復者:dr0 回復日期:2002-10-16 18:58:27
<br>內容:可能是地址對齊
<br>
<a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p></blockquote>
<hr size=1>
<blockquote><p>
回復者:dr0 回復日期:2002-10-16 18:58:51
<br>內容:你肯定寫了不該寫的地方
<br>
<a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p></blockquote>
<hr size=1>
<blockquote><p>
回復者:le 回復日期:2002-10-17 12:46:32
<br>內容:多謝各位高手的關照!<BR> TO drv0:<BR> 非常感謝。<BR> 是我上次發言錯了,讓您誤會我的意思了:實際是:“寫寄存器可以通過,讀寄存器死機”<BR><BR>但是,實際上,我只是將設備物理地址映射到內存空間,然后簡單地去讀該寄存器,怎么會死機呢?應該不會有地址對齊的要求吧?讀寫寄存器還需要地址對齊嗎?
<br>
<a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回復者:^_^ 回復日期:2002-10-18 08:23:36
<br>內容:這應該是硬件有問題了,<BR>檢查一下硬件的讀寫數據線,有沒有接錯的地方
<br>
<a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p></blockquote>
<hr size=1>
<blockquote><p>
回復者:le 回復日期:2002-10-18 12:47:50
<br>內容:謝謝!<BR>硬件好象沒有問題,因為廠家提供的測試程序可以通過。<BR><BR>一個簡單的讀寄存器操作怎么會引起系統掛起呢?<BR>各位高手,誰用過SOFTICE調式器,可以指教一下怎么調式這個問題嗎?
<br>
<a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p></blockquote>
<hr size=1>
<blockquote><p>
回復者:le 回復日期:2002-10-18 18:00:19
<br>內容:謝謝了
<br>
<a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p></blockquote>
<hr size=1>
<blockquote><p>
回復者:dr0 回復日期:2002-10-18 19:18:39
<br>內容:到 www.driverdevelop.com 去找點資料
<br>
<a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p></blockquote>
<hr size=1>
<blockquote><p>
回復者:^_^ 回復日期:2002-10-19 17:35:35
<br>內容:softice下用id,od訪問一下你的那個寄存器,如果也有問題,就不好說了
<br>
<a href="javascript:history.go(-1)">返回上頁</a><br><a href=http://www.copathway.com/cndevforum/>訪問論壇</a></p></blockquote>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -