阅读:2205回复:6
我在做pxa270的lcd驱动时,gwes.exe出现错误!
各位高手:
用release版本把wince跑起来的时候,只要用触摸屏操作几次屏幕,就会出现gwes.exe崩溃,具体见下: Data Abort: Thread=83ea9d58 Proc=8112c620 'gwes.exe' AKY=00000031 PC=039cefb8(pxa27x_lcd.dll+0x0001efb8) RA=0000000a(???+0x0000000a) BVA=0a6afdb4 FSR=000004f6 我查看了pxa27x_lcd.map文件,发现是在 0001:0001df34 ?EmulatedBltFill16@Emulator@@QAAJPAUGPEBltParms@@@Z 1001ef34 f gperotate:ebfill16.obj 0001:0001dfec ?EmulatedBltSrcCopy0116@Emulator@@QAAJPAUGPEBltParms@@@Z 1001efec f gperotate:ebcp0116.obj 执行EmulatedBltFill16函数是出现了错误,问题是我查看了这个函数,如下: __inline SCODE EmulatedBltFill16_Eml( GPEBltParms * pParms ) { DEBUGMSG(GPE_ZONE_BLT_HI,(TEXT("EmulatedBltFill16\r\n"))); UINT32 iDstScanStride = pParms->pDst->Stride(); BYTE * pbDibBitsDst = (BYTE *)pParms->pDst->Buffer(); PRECTL prcDst = pParms->prclDst; DWORD dwOnColorIndex = pParms->solidColor; int iNumDstRows = prcDst->bottom - prcDst->top; int iNumDstCols = prcDst->right - prcDst->left; // Compute pointer to the starting rows in the dst bitmap WORD *pwDstScanLine = (WORD *)(pbDibBitsDst + prcDst->top * iDstScanStride + prcDst->left * 2); WORD wColor = (WORD)dwOnColorIndex; EmulatedBltFill16ASM(pwDstScanLine, wColor, iNumDstCols, iNumDstRows, iDstScanStride); return S_OK; } 没有看出来有啥问题。搞了好几天了,不知有没有高手遇到过这个问题,望赐教! |
|
沙发#
发布于:2009-03-19 15:15
问题应该不在EmulatedBltFill16这个函数
|
|
|
板凳#
发布于:2009-03-19 15:18
你用键盘操作看看是否正常,错误看是显示驱动问题,和触摸关系不大
你可以精确定位下错误位置 |
|
|
地板#
发布于:2009-03-19 15:21
引用第1楼AllenZh于2009-03-19 15:15发表的 : 问题根源应该不在EmulatedBltFill16这个函数 |
|
|
地下室#
发布于:2009-03-23 15:54
如果不是出现在这个函数上,那应该怎么来找出这个错误呢?
|
|
5楼#
发布于:2009-03-23 15:55
谢谢AllenZh,我的这个案子目前没有带键盘,只能用触摸屏。
|
|
6楼#
发布于:2009-03-25 13:05
用户被禁言,该主题自动屏蔽! |
|