ms
Wed Oct 26 13:50:53 CDT 2005
This is a multi-part message in MIME format.
------=_NextPart_000_0027_01C5DA66.937D9F10
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Thanks Bruce, i tried to do what you've said
RA=3D02ea2614
in makeimg output i have i2c.dll at 02ea1000
and serial.dll at 02eb1000
So taking the lower one, i knew the problem is in i2c.dll anyway=20
EA-CS=3DMO 02ea2614-02ea1000 =3D 1614=20
In i2c.map file i have=20
0001:000015f4 SendStart
0001:00001730 SendAddress
MO-FO =3D 1614-15f4 =3D 0x20 =3D IO
IO-8 =3D0x18
in i2c.cod file, this is where i am confused, there is no 0x18 offset,
snippet of SendStart in i2c.cod below, it starts at ee0
Where have i gone wrong?
00ee0 |SendStart| PROC
; 410 : {
00ee0 |$L37615|
00ee0 e1a0c00d mov r12, sp
00ee4 e92d0001 stmdb sp!, {r0}
00ee8 e92d5000 stmdb sp!, {r12, lr}
00eec e24dd00c sub sp, sp, #0xC
00ef0 |$M37613|
; 411 : BOOL retval;
; 412 :=20
; 413 : retval =3D TRUE;
00ef0 e3a03001 mov r3, #1
00ef4 e58d3000 str r3, [sp]
; 414 : EnterCriticalSection(&RegCrit);
00ef8 e59f010c ldr r0, [pc, #0x10C]
00efc eb000000 bl EnterCriticalSection
; 415 : =20
; 416 : pI2C_reg->IDBR =3D DeviceAdd | WRITE_BIT;
00f00 e59f3110 ldr r3, [pc, #0x110]
00f04 e5933000 ldr r3, [r3]
00f08 e2832008 add r2, r3, #8
00f0c e59d3014 ldr r3, [sp, #0x14]
00f10 e5823000 str r3, [r2]
"Bruce Eitman (eMVP)" <beitmannospam@NOSPAM_applieddata.NOSPAM_net> =
wrote in message news:eNHe68c2FHA.1416@TK2MSFTNGP09.phx.gbl...
>=20
> I believe that you want to use the RA value, in your case 02ea2614, as =
your
> Exception Address (EA)
>=20
>=20
> Look up EA in your makeimg output. It falls between two modules code =
starts
> (CS). The one with the lower number is the module with the problem. =
Then
> the offset into the module is EA-CS=3DMO. Look MO up in <module.map> =
in your
> target folder. Similar to looking it up in the makeimg output, it =
will give
> you the function that caused the exception, and the function offset =
(FO).
> Do the math again MO-FO=3DIO. Now figure out which c/c++ file =
contains the
> function, look up the function in the corresponding .COD file, and =
find
> IO-8. That is the assembly instruction that caused the exception, =
look up a
> few lines an you will see the c code.
>=20
>=20
> If you don't have the .COD files, set the environment variable =
WINCECOD=3D1
> and rebuild.
>=20
>=20
>=20
> --=20
> Bruce Eitman (eMVP)
> Senior Engineer
> beitman AT applieddata DOT net
>=20
> Applied Data Systems
> www.applieddata.net
> An ISO 9001:2000 Registered Company
> Microsoft WEP Gold-level Member
>=20
>=20
> "ms" <ms@discussions.microsoft.com> wrote in message=20
> news:%23Wttx8a2FHA.2316@tk2msftngp13.phx.gbl...
> > Hi,
> >
> > I have a bug in my driver which results in an Undefined instruction
> > exception
> >
> > AKY=3D00000049
> > PC=3D02ea26c0
> > RA=3D02ea2614
> > BVA=3D08140690
> > FSR=3D000000f5
> >
> > What does the FSR mean? The instruction at the PC address is
> >
> > 02ea26c0 E59F3060 ldr r3,[pc,#0x60] which seems valid =
instruction
> >
> > When these come up i was wondering which are the key addresses to =
look at=20
> > to
> > find out
> > what is causing it. I'm using PXA255 with WinCE V5.0.
> >
> > Thanks
> >
> >=20
>=20
>
------=_NextPart_000_0027_01C5DA66.937D9F10
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2800.1515" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY>
<DIV><FONT face=3DArial size=3D2>Thanks Bruce, i tried to do what you've =
said</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>RA=3D02ea2614</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>in makeimg output i have i2c.dll at=20
02ea1000</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>and serial.dll at =
02eb1000</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>So taking the lower one, i knew the =
problem is in=20
i2c.dll anyway </FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>EA-CS=3DMO =
02ea2614-02ea1000 =3D 1614=20
</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>In i2c.map file i have </FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>0001:000015f4 =
SendStart</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>0001:00001730 =
SendAddress</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>MO-FO =3D 1614-15f4 =3D 0x20 =3D =
IO</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2> IO-8 =3D0x18</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>in i2c.cod file, this is where i am =
confused, there=20
is no 0x18 offset,</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>snippet of SendStart in i2c.cod below, =
it starts at=20
ee0</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>Where have i gone wrong?</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>00ee0 |SendStart| =
PROC</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>; 410 : {</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2> 00ee0 =
|$L37615|<BR> =20
00ee0 e1a0c00d =
mov =20
r12, sp<BR> 00ee4 e92d0001 =20
stmdb sp!, {r0}<BR> =20
00ee8 e92d5000 stmdb sp!, =
{r12,=20
lr}<BR> 00eec e24dd00c =20
sub sp, sp, =
#0xC<BR> =20
00ef0 |$M37613|</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>; 411 : BOOL retval;<BR>; =
412 :=20
<BR>; 413 : retval =3D TRUE;</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2> 00ef0 e3a03001 =20
mov r3, #1<BR> =20
00ef4 e58d3000 =
str =20
r3, [sp]</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>; 414 :=20
EnterCriticalSection(&RegCrit);</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2> 00ef8 e59f010c =20
ldr r0, [pc, =
#0x10C]<BR> =20
00efc eb000000 =20
bl =20
EnterCriticalSection</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>; 415 : =
<BR>;=20
416 : pI2C_reg->IDBR =3D =
DeviceAdd |=20
WRITE_BIT;</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2> 00f00 e59f3110 =20
ldr r3, [pc, =
#0x110]<BR> =20
00f04 e5933000 =
ldr =20
r3, [r3]<BR> 00f08 e2832008 =20
add r2, r3, #8<BR> =
00f0c e59d3014 =
ldr =20
r3, [sp, #0x14]<BR> 00f10 e5823000 =20
str r3, =
[r2]</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>"Bruce Eitman (eMVP)" <</FONT><A=20
href=3D"mailto:beitmannospam@NOSPAM_applieddata.NOSPAM_net"><FONT =
face=3DArial=20
size=3D2>beitmannospam@NOSPAM_applieddata.NOSPAM_net</FONT></A><FONT =
face=3DArial=20
size=3D2>> wrote in message </FONT><A=20
href=3D"news:eNHe68c2FHA.1416@TK2MSFTNGP09.phx.gbl"><FONT face=3DArial=20
size=3D2>news:eNHe68c2FHA.1416@TK2MSFTNGP09.phx.gbl</FONT></A><FONT =
face=3DArial=20
size=3D2>...</FONT></DIV><FONT face=3DArial size=3D2>> <BR>> I =
believe that you=20
want to use the RA value, in your case 02ea2614, as your<BR>> =
Exception=20
Address (EA)<BR>> <BR>> <BR>> Look up EA in your makeimg =
output. =20
It falls between two modules code starts<BR>> (CS). The one =
with the=20
lower number is the module with the problem. Then<BR>> the =
offset into=20
the module is EA-CS=3DMO. Look MO up in <module.map> in =
your<BR>>=20
target folder. Similar to looking it up in the makeimg output, it =
will=20
give<BR>> you the function that caused the exception, and the =
function offset=20
(FO).<BR>> Do the math again MO-FO=3DIO. Now figure out which =
c/c++ file=20
contains the<BR>> function, look up the function in the corresponding =
.COD=20
file, and find<BR>> IO-8. That is the assembly instruction that =
caused=20
the exception, look up a<BR>> few lines an you will see the c =
code.<BR>>=20
<BR>> <BR>> If you don't have the .COD files, set the environment =
variable=20
WINCECOD=3D1<BR>> and rebuild.<BR>> <BR>> <BR>> <BR>> -- =
<BR>>=20
Bruce Eitman (eMVP)<BR>> Senior Engineer<BR>> beitman AT =
applieddata DOT=20
net<BR>> <BR>> Applied Data Systems<BR>> </FONT><A=20
href=3D"
http://www.applieddata.net"><FONT face=3DArial=20
size=3D2>www.applieddata.net</FONT></A><BR><FONT face=3DArial =
size=3D2>> An ISO=20
9001:2000 Registered Company<BR>> Microsoft WEP Gold-level =
Member<BR>>=20
<BR>> <BR>> "ms" <</FONT><A=20
href=3D"mailto:ms@discussions.microsoft.com"><FONT face=3DArial=20
size=3D2>ms@discussions.microsoft.com</FONT></A><FONT face=3DArial =
size=3D2>> wrote=20
in message <BR>> </FONT><A=20
href=3D"news:%23Wttx8a2FHA.2316@tk2msftngp13.phx.gbl"><FONT face=3DArial =
size=3D2>news:%23Wttx8a2FHA.2316@tk2msftngp13.phx.gbl</FONT></A><FONT =
face=3DArial=20
size=3D2>...<BR>> > Hi,<BR>> ><BR>> > I have a bug in =
my driver=20
which results in an Undefined instruction<BR>> > exception<BR>> =
><BR>> > AKY=3D00000049<BR>> > PC=3D02ea26c0<BR>> > =
RA=3D02ea2614<BR>> > BVA=3D08140690<BR>> > =
FSR=3D000000f5<BR>>=20
><BR>> > What does the FSR mean? The instruction at the PC =
address=20
is<BR>> ><BR>> > 02ea26c0 E59F3060 ldr =20
r3,[pc,#0x60] which seems valid instruction<BR>> ><BR>> =
> When=20
these come up i was wondering which are the key addresses to look at =
<BR>>=20
> to<BR>> > find out<BR>> > what is causing it. I'm using =
PXA255=20
with WinCE V5.0.<BR>> ><BR>> > Thanks<BR>> ><BR>> =
>=20
<BR>> <BR>> </FONT></BODY></HTML>
------=_NextPart_000_0027_01C5DA66.937D9F10--