This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: MIPS32 gdb vectors question


I'm looking into why MIPS32/GDB does not respond to GDB commands.  Just
wanted to check to make sure the correct vector processing code is called,
hence, debug_vector is not called, but other_vector is.

 .section ".debug_vector","ax"

 # Debug vector at 0xBFC00200

FUNC_START(debug_vector)
 la k0,32*4
 la k1,hal_vsr_table # Get VSR table
 lw k1,32*4(k1)  # load debug vector
 jr k1   # go there
 nop    # (delay slot)
FUNC_END(debug_vector)

 .section ".other_vector","ax"

 # Common vector at 0x80000080 or 0xBFC00180

FUNC_START(other_vector)
 mfc0 k0,cause  # K0 = exception cause
 nop
 andi k0,k0,0x7F  # isolate exception code
 la k1,hal_vsr_table # address of VSR table
 add k1,k1,k0  # offset of VSR entry
 lw k1,0(k1)  # k1 = pointer to VSR
 jr k1   # go there
 nop    # (delay slot)
FUNC_END(other_vector)

 .section ".utlb_vector","ax"

----- Original Message -----
From: "Jonathan Larmour" <jifl at eCosCentric dot com>
To: "Tim Michals" <t dot michals at attbi dot com>
Cc: <ecos-discuss at sources dot redhat dot com>
Sent: Wednesday, February 26, 2003 11:55 AM
Subject: Re: [ECOS] MIPS32 gdb vectors question


> Tim Michals wrote:
> >
> > I'm investigating an issue with using GDB with the MIPS32 HAL.
> >
> > Vectors.S has entry points for reset 0xbfc0_0000, interrupt vector
> > 0xX000_0180 and debug 0xX000_0200
> >
> >
> > I thought when the BEV (Bootstrap) bit is not set, EXL, not already
> > processing an execption, is set to a 1 or 0 would indicate where the
common
> > interruptmis defined, it can only be 180, or 200 but not both?
> >
> >
> > The problem is when a break instruction is serviced, it goes to the
common
> > exception vector.  It is my understanding that is 0x8000_0180 if all of
the
> > bits are set up correctly, not 0x8000_0200?
>
> According to a spec I have here a breakpoint exception goes to the general
> exception vector, offset 0x180. i.e. 0x8000_0180 for BEV==0 and 0xBFC00380
> for BEV==1. i.e. the same as the common interrupt vector. I don't know if
> this answers your question or not :-).
>
> Jifl
> --
> eCosCentric    http://www.eCosCentric.com/    The eCos and RedBoot experts
> --[ "You can complain because roses have thorns, or you ]--
> --[  can rejoice because thorns have roses." -Lincoln   ]-- Opinions==mine
>
>



-- 
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]