This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
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