Re: USBFN => data abort in Windows Embedded CE6.0
- From: shjkun@xxxxxxxxx
- Date: Tue, 20 May 2008 17:23:52 -0700 (PDT)
On 5월21일, 오전5시50분, r_z_aret@xxxxxxxxxxxx wrote:
On Mon, 19 May 2008 23:24:45 -0700 (PDT), oka...@xxxxxxxxx wrote:
Hi, how are u?
Previously I made a question about 'Data Abort' in Usbfn pdd device
driver.
But, I tested several times with the other souce code, Sc2440pdd.cpp
file for WinEmbCE6.0.
This code already has been confirmed by the reference board made by
MDS technology which is one of embedded software company.
So, with this confirmed source code Sc2440pdd.cpp, I tried to adapt to
my WinEmbCE6.0 BSP project.
But error has happed like below.
error has been happened just after finishing calling UfnPdd_IOControl
function.
I'm not at all familiar with this function (or drivers for that
matter), and I'm having trouble understanding the details of your
problem. Also, I'm heavily biased towards C/C++. But this may be
relevant anyway:
Bad pointers are common causes of nasty problems. The symptom occurs
when code tries to use a bad pointer. But the bug is when the pointer
becomes bad, and that may be in code that seems unrelated to the code
where the symptom occurs. So the real way to find such problems is to
find bad pointers as soon after they are created as possible. And that
is where ASSERTs are really, really helpful. Definitely a pain to add,
but well worth effort. In this case, if you can determine what
pointers are used in the function that shows the symptom, then you can
use ASSERTs to check all those pointers in code that might set them
before the function is called. Be sure to fortify yourself with as
much patience as you can muster.
Buffer overruns are particularly hard bugs to track down. Code that
writes past the end of a buffer can clobber a pointer used in code
that seems very, very unrelated. I find some of these by putting a
debugger break on the corrupted pointer, and that stops when something
changes the value of the pointer. Not an option without a debugger.
The only other way I know to catch these is to check for buffer
overruns in all code that might have such a bug; I generally put a
null at the end of a buffer and use an ASSERT to make sure it is still
null after a put something in the buffer.
and the parameter of UfnPdd_IOControl is wired.
(with WinCE5.0 there is no calling this function with this parameter)
...
OEMInit: KITLIoctl end
VBridge:: VB_INITIALIZED returns [0]
[2846]UFNPDD : RegOpenKeyEx success 0, 1, Mass_Storage_Class, 38
[2849]UFNPDD : RegQueryValueEx success
[2863]UFNPDD : USB MSF Function Class Enabled : Mass_Storage_Class
[2972]UFNPDD : SC2440UsbFn!UfnPdd_Init: Using IO Base 50000000
[2974]UFNPDD : SC2440UsbFn!UfnPdd_Init: Using SysIntr 17
[2976]UFNPDD : SC2440UsbFn!UfnPdd_Init: Using IST priority 100
[1167]UsbFnMdd!UFN_Init: PDD has 5 endpoints
[1170]UsbFnMdd!UFN_Init: PDD supports speeds 0x1
[1489]00..
[2644]UFNPDD : ++UfnPdd_IOControl, dwCode = 2752584
[2716]UFNPDD : found !! dwCnt=9
[2717]UFNPDD : sSTATEs[dwCnt].strState=IOCTL_BUS_POSTINIT <- I added
to find out what code has been passed.
[2724]UFNPDD : --UfnPdd_IOControl
Exception 'Data Abort' (4): Thread-Id=00df0002(pth=87e30c98), Proc-
Id=00400002(pprc=81108308) 'NK.EXE', VM-active=015f0002(pprc=87
e06b70) 'udevice.exe'
PC=c0978d18(mv8760usbfn.dll+0x00008d18) RA=c0979d7c(mv8760usbfn.dll
+0x00009d7c) SP=d03ce2d8, BVA=00000000
[1498]EXCEPTION_EXECUTE_HANDLER..
[1527]Error !! -> GetLastError() = 0x57, fRet = 0
Recently, I really made lots of questions at this place.
Because I think you are very good at WinCE over the world.
Thanx for your help in advance.
-----------------------------------------
To reply to me, remove the underscores (_) from my email address (and please indicate which newsgroup and message).
Robert E. Zaret, eMVP
PenFact, Inc.
20 Park Plaza, Suite 478
Boston, MA 02116www.penfact.com- 따온 텍스트 숨기기 -
- 따온 텍스트 보기 -- 따온 텍스트 숨기기 -
- 따온 텍스트 보기 -
Thanx for your help again~!! ;-)
The cause of the problem is that I omitted a very important keyword
DllEntry in the sources file.
So, it makes this kind of problem.. but the sources file is imported
from the other BSP called Rebis made by MDS technology.
Hence, I never think of this sources file as wrong file.
.
- References:
- USBFN => data abort in Windows Embedded CE6.0
- From: okayhj
- Re: USBFN => data abort in Windows Embedded CE6.0
- From: r_z_aret
- USBFN => data abort in Windows Embedded CE6.0
- Prev by Date: Re: USBFN device driver => data abort in Windows Embedded CE6.0
- Next by Date: SetEvent semantics (when nothing is waiting on the event)
- Previous by thread: Re: USBFN => data abort in Windows Embedded CE6.0
- Next by thread: USBFN device driver => data abort in Windows Embedded CE6.0
- Index(es):
Relevant Pages
|
|